module for Monad
Run the bind operation on the encapsulated object following the monad law.
To initialize with a monad implementation and an object that obeys the monad law.
Run the map operation on the encapsulated object following the monad law. bind is used to implement.
Run the plus operation on the encapsulated object following the MonadPlus law.
Run the seq operation on the encapsulated object following the monad law. If seq is not defined by the monad impl, use bind to implement.
To create a value based on the monad impl.
[Validate]