-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A simple type class for success/failure computations.
--
-- A simple type class for success/failure computations.
@package failure
@version 0.0.0.3
-- | Type classes for returning failures.
module Control.Failure
class Failure e f
failure :: Failure e f => e -> f v
class (Functor f, Failure e f) => FunctorFailure e f
class (Applicative f, Failure e f) => ApplicativeFailure e f
class (Monad f, Applicative f, Failure e f) => MonadFailure e f
class Failure e f => WrapFailure e f
wrapFailure :: WrapFailure e f => (forall eIn. Exception eIn => eIn -> e) -> f a -> f a
newtype StringException
StringException :: String -> StringException
-- | Call failure with a String.
failureString :: Failure StringException m => String -> m a
class Try f where type family Error f
try :: (Try f, ApplicativeFailure (Error f) f') => f a -> f' a
data NothingException
NothingException :: NothingException
data NullException
NullException :: NullException
instance Typeable StringException
instance Typeable NothingException
instance Typeable NullException
instance Show NothingException
instance Show NullException
instance Try []
instance Exception NullException
instance Try (Either e)
instance Try Maybe
instance Exception NothingException
instance Failure e (Either e)
instance Exception e => Failure e IO
instance Failure e []
instance Failure e Maybe
instance Exception StringException
instance Show StringException
instance Exception e => WrapFailure e IO
instance (Monad f, Applicative f, Failure e f) => MonadFailure e f
instance (Applicative f, Failure e f) => ApplicativeFailure e f
instance (Functor f, Failure e f) => FunctorFailure e f