úÎ 5 ¸M(C) 2015 David Luposchainsky, (C) 2015 Herbert Valerio Riedel BSD-style (see the file LICENSE)libraries@haskell.org provisionalportableSafe When a value is bound in do1-notation, the pattern on the left hand side of <-K might not match. In this case, this class provides a function to recover.A  without a ° 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 # should satisfy the following law: fail s should be a left zero for , fail s >>= f = fail s If your  is also  MonadPlus, a popular definition is fail _ = mzero      JMlLBjPXp012ZEbCS85gesControl.Monad.Fail MonadFailfailbaseGHC.BaseMonad>>=$fMonadFailReadP$fMonadFailReadPrec $fMonadFailIO $fMonadFail[]$fMonadFailMaybe