Holds a value that will be evaluated lazily.
This slightly awkward construction is necessary because we don't want to evaluate options that aren't used and we can't construct an XProcConstantExpression at runtime.