mtlx-0.1.4: Monad transformer library with type indexes, providing 'free' copies.

Portabilitynon-portable (multi-param classes, functional dependencies)
MaintainerMark Snyder, marks@ittc.ku.edu

Control.Monad.ErrorX

Description

Error monads.

This module is inspired by the paper /Functional Programming with Overloading and Higher-Order Polymorphism/, Mark P Jones (http://web.cecs.pdx.edu/~mpj/) Advanced School of Functional Programming, 1995.

Documentation

newtype ErrorTX ix e m a Source

Constructors

ErrorTX 

Fields

runErrorTX' :: m (Either e a)
 

Instances

(ErrorX ix e, MonadRWS r w s m, Index ix) => MonadRWS r w s (ErrorTX ix e m) 
(ErrorX ixe e, MonadReaderX ixr r m, Index ixr, Index ixe) => MonadReaderX ixr r (ErrorTX ixe e m) 
(ErrorX ixe e, Index ixs, MonadStateX ixs s m, Index ixe) => MonadStateX ixs s (ErrorTX ixe e m) 
(ErrorX ixe e, Index ixw, MonadWriterX ixw w m, Index ixe) => MonadWriterX ixw w (ErrorTX ixe e m) 
(Monad m, ErrorX ix1 e1, ErrorX ix2 e2, Index ix1, Index ix2, MonadErrorX ix1 e1 m) => MonadErrorX ix1 e1 (ErrorTX ix2 e2 m) 
(Monad m, ErrorX ix e, Index ix) => MonadErrorX ix e (ErrorTX ix e m) 
(ErrorX ix e, MonadReader r m, Index ix) => MonadReader r (ErrorTX ix e m) 
(ErrorX ix e, MonadState s m, Index ix) => MonadState s (ErrorTX ix e m) 
(ErrorX ix e, MonadWriter w m, Index ix) => MonadWriter w (ErrorTX ix e m) 
(ErrorX ix e, Index ix) => MonadTrans (ErrorTX ix e) 
(Monad m, ErrorX ix e, Index ix) => Monad (ErrorTX ix e m) 
(Monad m, Index ix) => Functor (ErrorTX ix e m) 
(MonadFix m, ErrorX ix e, Index ix) => MonadFix (ErrorTX ix e m) 
(Monad m, ErrorX ix e, Index ix) => MonadPlus (ErrorTX ix e m) 
(ErrorX ix e, MonadCont m, Index ix) => MonadCont (ErrorTX ix e m) 
(ErrorX ix e, MonadIO m, Index ix) => MonadIO (ErrorTX ix e m) 

runErrorTX :: Index ix => ix -> ErrorTX ix e m a -> m (Either e a)Source

mapErrorTX :: Index ix => ix -> (m (Either e a) -> n (Either e' b)) -> ErrorTX ix e m a -> ErrorTX ix e' n bSource