A standard option contract allowing for early exercise at the choice of the option holder
optionality_fcn(v, ...)
Return a version of v at time t corrected for any optionality conditions.
recovery_fcn(v, S, t, ...)
Return recovery value, given non-default values v at time t. Subclasses may be more elaborate, this method simply returns 0.0.