Surely since you have monads you can just use the tools they give you?
fn = liftM2 (+) fn = liftM2 (+)You're missing the point entirely.
> the original example gets rid of the Maybe, defaulting to 0.
http://hackage.haskell.org/package/base-4.10.1.0/docs/Data-M...