Control.Monad.Maybe
data MaybeT m a

Limitations

Example