-- 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.2 -- | 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 NullException instance Typeable NothingException instance Typeable StringException instance Show NullException instance Show NothingException 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 MonadFailure e DummyMonad instance ApplicativeFailure e DummyMonad instance FunctorFailure e DummyMonad instance Failure e DummyMonad instance Monad DummyMonad instance Applicative DummyMonad instance Functor DummyMonad 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