-- 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.1.2 -- | Type classes for returning failures. module Control.Failure class Monad f => Failure e f failure :: Failure e f => e -> f v 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, Failure (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 Exception e => Failure e IO instance Failure e (Either e) instance Failure e [] instance Failure e Maybe instance Exception StringException instance Show StringException instance Exception e => WrapFailure e IO