imm-1.0.0.0: src/lib/Imm/Error.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Imm.Error (module Imm.Error) where
-- {{{ Imports
import Imm.Prelude
-- }}}
liftE :: (MonadThrow m, Exception e) => Either e a -> m a
liftE (Left e) = throwM e
liftE (Right a) = return a
-- | Wrap a 'Maybe' value in 'MonadError'
failWith, (<!>) :: (MonadThrow m, Exception e) => Maybe a -> e -> m a
failWith x e = maybe (throwM e) return x
(<!>) = failWith