Add MRaise typeclass
This is an alternative to MFail
in #488. It allows a monad to present a general error raising mechanism. This includes an example instantiation for option. I didn't do the work of #488 to completely replace MGuard
, but if we decide to use this instead of MFail
, we can merge the two patches.
Edited by Thibaut Pérami