-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Essentially the Maybe type with error messages. -- @package exceptional @version 0.2.0.0 module Control.Exceptional -- | This is basically specialized 'Either String', or Maybe with -- error messages. data Exceptional x Failure :: String -> Exceptional x Success :: x -> Exceptional x -- | This is fail-safe, so to speak. That is, -- --
-- fail = Failure ---- | Convert Exceptional into another Monad. If you don't -- have proper exception handling in your monad, this can throw errors. -- --
-- runExceptional (Failure s) = fail s -- runExceptional (Success s) = pure s --runExceptional :: Monad m => Exceptional x -> m x -- | Convert a Maybe to an Exceptional -- --
-- fromMaybe s Nothing = fail s -- fromMaybe s (Just x) = pure x --fromMaybe :: String -> Maybe a -> Exceptional a -- | Convert an Exceptional into a Maybe. This function -- disregards the error message. -- --
-- toMaybe (Success x) = Just x -- toMaybe (Failure _) = Nothing --toMaybe :: Exceptional a -> Maybe a -- | Convert an Either String to an Exceptional -- --
-- fromEither (Left s) = fail s -- fromEither (Right x) = pure x --fromEither :: Either String a -> Exceptional a -- | Convert an Exceptional to an Either String -- --
-- toEither (Failure s) = Left s -- toEither (Success x) = Right x --toEither :: Exceptional a -> Either String a -- | A wrapper around tryIOError. Encapsulates I/O exceptions in the -- Exceptional monad. exceptIO :: IO a -> IO (Exceptional a) -- | Run an exception-prone action in another monad, catch the errors in -- Exceptional. exceptional :: MonadCatch m => m a -> m (Exceptional a) -- | Get all of the Failures from a bunch of Exceptionals failures :: Foldable t => t (Exceptional x) -> [String] -- | Get all of the Successes from a bunch of Exceptionals successes :: Foldable t => t (Exceptional x) -> [x] -- | Given a number of Exceptional values: -- -- foldExceptional :: Foldable t => t (Exceptional x) -> Either [String] [x] instance Eq x => Eq (Exceptional x) instance Show x => Show (Exceptional x) instance Read x => Read (Exceptional x) instance Monad Exceptional instance Alternative Exceptional instance Applicative Exceptional instance Functor Exceptional