-- 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