| Safe Haskell | Safe | 
|---|---|
| Language | Haskell2010 | 
Monad.Fail
Documentation
class Monad m => MonadFail (m :: * -> *) where #
When a value is bound in do-notation, the pattern on the left
 hand side of <- might not match. In this case, this class
 provides a function to recover.
A Monad without a MonadFail instance may only be used in conjunction
 with pattern that always match, such as newtypes, tuples, data types with
 only a single data constructor, and irrefutable patterns (~pat).
Instances of MonadFail should satisfy the following law: fail s should
 be a left zero for >>=,
fail s >>= f = fail s
If your Monad is also MonadPlus, a popular definition is
fail _ = mzero
Since: base-4.9.0.0
Minimal complete definition