packages feed

language-dickinson-0.1.0.0: src/Control/Exception/Value.hs

module Control.Exception.Value ( eitherThrow
                               , eitherThrowIO
                               , maybeThrowIO
                               ) where

import           Control.Exception (Exception, throw, throwIO)

eitherThrow :: Exception e => Either e x -> x
eitherThrow = either throw id

eitherThrowIO :: Exception e => Either e x -> IO x
eitherThrowIO = either throwIO pure

maybeThrowIO :: Exception e => Maybe e -> IO ()
maybeThrowIO (Just e) = throwIO e
maybeThrowIO Nothing  = pure ()