-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Monads for operations that can exit early and produce warnings -- -- Dangerous monads result in (Either Exit a, [Warning]), where Exit can -- denote either ending computation early (Stop) or the computation -- failing (Exit, Failure). Monads, Monad Transformers, and helper -- functions are included. @package Dangerous @version 0.2 module Control.Dangerous data Exit Stop :: String -> Exit Failure :: String -> Exit Exit :: Int -> String -> Exit data Warning Warning :: String -> Warning data Dangerous a Dangerous :: (Either Exit a, [Warning]) -> Dangerous a runDangerous :: Dangerous a -> (Either Exit a, [Warning]) data DangerousT m a DangerousT :: m (Either Exit a, [Warning]) -> DangerousT m a runDangerousT :: DangerousT m a -> m (Either Exit a, [Warning]) class Monad m => Errorable m log :: Errorable m => Warning -> m () warn :: (Errorable m, Show w) => w -> m () exit :: Errorable m => Exit -> m a exit_ :: Errorable m => Exit -> m () die :: (Errorable m, Show s) => Int -> s -> m a die_ :: (Errorable m, Show s) => Int -> s -> m () throw :: (Errorable m, Show s) => s -> m a throw_ :: (Errorable m, Show s) => s -> m () stop :: (Errorable m, Show s) => s -> m a stop_ :: (Errorable m, Show s) => s -> m () succeeded :: (Either Exit a, [Warning]) -> Bool failed :: (Either Exit a, [Warning]) -> Bool stopped :: (Either Exit a, [Warning]) -> Bool exited :: (Either Exit a, [Warning]) -> Bool warnings :: (Either Exit a, [Warning]) -> [Warning] result :: (Either Exit a, [Warning]) -> Either Exit a execute :: Either Exit a -> IO a instance Monad m => Errorable (DangerousT m) instance MonadIO m => MonadIO (DangerousT m) instance MonadTrans DangerousT instance Monad m => Monad (DangerousT m) instance Functor m => Functor (DangerousT m) instance Errorable Dangerous instance Monad Dangerous instance Functor Dangerous instance Show Warning instance Show Exit