Distribution.Compat.MonadFail

Cabal-syntax-3.7.0.0: A library for working with .cabal files

Safe Haskell | Safe-Inferred
Language | Haskell2010

Distribution.Compat.MonadFail

Description

Compatibility layer for Control.Monad.Fail

Synopsis

- class Monad m => MonadFail (m :: Type -> Type) where
  - fail :: String -> m a

# 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

Since: base-4.9.0.0

Methods

fail :: String -> m a Source #

#### Instances

Instances details

MonadFail ParsecParser Source # |
Instance details Defined in Distribution.Parsec Methods fail :: String -> ParsecParser a Source #
MonadFail P | Since: base-4.9.0.0
Instance details Defined in Text.ParserCombinators.ReadP Methods fail :: String -> P a Source #
MonadFail ReadP | Since: base-4.9.0.0
Instance details Defined in Text.ParserCombinators.ReadP Methods fail :: String -> ReadP a Source #
MonadFail ReadPrec | Since: base-4.9.0.0
Instance details Defined in Text.ParserCombinators.ReadPrec Methods fail :: String -> ReadPrec a Source #
MonadFail Get |
Instance details Defined in Data.Binary.Get.Internal Methods fail :: String -> Get a Source #
MonadFail IO | Since: base-4.9.0.0
Instance details Defined in Control.Monad.Fail Methods fail :: String -> IO a Source #
MonadFail Q |
Instance details Defined in Language.Haskell.TH.Syntax Methods fail :: String -> Q a Source #
MonadFail Maybe | Since: base-4.9.0.0
Instance details Defined in Control.Monad.Fail Methods fail :: String -> Maybe a Source #
MonadFail [] | Since: base-4.9.0.0
Instance details Defined in Control.Monad.Fail Methods fail :: String -> [a] Source #
MonadFail f => MonadFail (Ap f) | Since: base-4.12.0.0
Instance details Defined in Data.Monoid Methods fail :: String -> Ap f a Source #
(Monad m, Error e) => MonadFail (ErrorT e m) |
Instance details Defined in Control.Monad.Trans.Error Methods fail :: String -> ErrorT e m a Source #
MonadFail m => MonadFail (IdentityT m) |
Instance details Defined in Control.Monad.Trans.Identity Methods fail :: String -> IdentityT m a Source #
MonadFail m => MonadFail (ReaderT r m) |
Instance details Defined in Control.Monad.Trans.Reader Methods fail :: String -> ReaderT r m a Source #
MonadFail m => MonadFail (StateT s m) |
Instance details Defined in Control.Monad.Trans.State.Lazy Methods fail :: String -> StateT s m a Source #
MonadFail m => MonadFail (StateT s m) |
Instance details Defined in Control.Monad.Trans.State.Strict Methods fail :: String -> StateT s m a Source #
(Monoid w, MonadFail m) => MonadFail (WriterT w m) |
Instance details Defined in Control.Monad.Trans.Writer.Lazy Methods fail :: String -> WriterT w m a Source #
(Monoid w, MonadFail m) => MonadFail (WriterT w m) |
Instance details Defined in Control.Monad.Trans.Writer.Strict Methods fail :: String -> WriterT w m a Source #
MonadFail (ParsecT s u m) | Since: parsec-3.1.12.0
Instance details Defined in Text.Parsec.Prim Methods fail :: String -> ParsecT s u m a Source #
(Monoid w, MonadFail m) => MonadFail (RWST r w s m) |
Instance details Defined in Control.Monad.Trans.RWS.Lazy Methods fail :: String -> RWST r w s m a Source #
(Monoid w, MonadFail m) => MonadFail (RWST r w s m) |
Instance details Defined in Control.Monad.Trans.RWS.Strict Methods fail :: String -> RWST r w s m a Source #