{- | Module : Control.Monad.Error.Class Copyright : (c) Michael Weber 2001, (c) Jeff Newbern 2003-2006, (c) Andriy Palamarchuk 2006 License : BSD-style (see the file LICENSE) Maintainer : ross@soi.city.ac.uk Stability : experimental Portability : non-portable (multi-parameter type classes) [Computation type:] Computations which may fail or throw exceptions. [Binding strategy:] Failure records information about the cause\/location of the failure. Failure values bypass the bound function, other values are used as inputs to the bound function. [Useful for:] Building computations from sequences of functions that may fail or using exception handling to structure error handling. [Zero and plus:] Zero is represented by an empty error and the plus operation executes its second argument if the first fails. [Example type:] @'Either' 'String' a@ The Error monad (also called the Exception monad). -} {- Rendered by Michael Weber , inspired by the Haskell Monad Template Library from Andy Gill () -} module Control.Monad.Error.Class ( Error(..), MonadError(..), ) where import "mtl" Control.Monad.Error.Class