At maturity, the call option holder will "exercise", i.e. choose stock, with value S, if the
stock price is above the strike K, paying K to the option issuer,
realizing value S-K. The put option holder will exercise, receiving K while surrendering
stock worth S, if the stock price is below K.
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.
Therefore the value at maturity is equal to max(0,callput*(S-K))