| Copyright | (C) 2015 David Luposchainsky (C) 2015 Herbert Valerio Riedel | 
|---|---|
| License | BSD-style (see the file LICENSE) | 
| Maintainer | libraries@haskell.org | 
| Stability | provisional | 
| Portability | portable | 
| Safe Haskell | Trustworthy | 
| Language | Haskell2010 | 
GHC.Internal.Control.Monad.Fail
Description
Documentation
class Monad m => MonadFail (m :: Type -> Type) where Source #
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
fail s should be an action that runs in the monad itself, not an
 exception (except in instances of MonadIO).  In particular,
 fail should not be implemented in terms of error.
Since: base-4.9.0.0
Methods
fail :: HasCallStack => String -> m a Source #
Instances
| MonadFail Q Source # | |
| Defined in GHC.Internal.TH.Monad | |
| MonadFail ReadP Source # | Since: base-4.9.0.0 | 
| Defined in GHC.Internal.Text.ParserCombinators.ReadP | |
| MonadFail ReadPrec Source # | Since: base-4.9.0.0 | 
| Defined in GHC.Internal.Text.ParserCombinators.ReadPrec | |
| MonadFail IO Source # | Since: base-4.9.0.0 | 
| Defined in GHC.Internal.Control.Monad.Fail | |
| MonadFail Maybe Source # | Since: base-4.9.0.0 | 
| Defined in GHC.Internal.Control.Monad.Fail | |
| MonadFail [] Source # | Since: base-4.9.0.0 | 
| Defined in GHC.Internal.Control.Monad.Fail Methods fail :: HasCallStack => String -> [a] Source # | |
| MonadFail f => MonadFail (Ap f) Source # | Since: base-4.12.0.0 | 
| Defined in GHC.Internal.Data.Monoid | |