module Control.Monad.Trans.Has.Except ( module Control.Monad.Trans.Has.Except , module X ) where import "transformers" Control.Monad.Trans.Except qualified as Except import "transformers" Control.Monad.Trans.Except as X (ExceptT (..)) import "this" Control.Monad.Trans.Has import qualified Control.Monad.Trans.Except as Control.Monad.Trans.Has type HasExcept e m = Has (ExceptT e) m throw :: HasExcept e m => e -> m () throw :: e -> m () throw e e = (forall (n :: * -> *). Monad n => ExceptT e n ()) -> m () forall (t :: (* -> *) -> * -> *) (m :: * -> *) a. Has t m => (forall (n :: * -> *). Monad n => t n a) -> m a liftH ((forall (n :: * -> *). Monad n => ExceptT e n ()) -> m ()) -> (forall (n :: * -> *). Monad n => ExceptT e n ()) -> m () forall a b. (a -> b) -> a -> b $ n (Either e ()) -> ExceptT e n () forall e (m :: * -> *) a. m (Either e a) -> ExceptT e m a ExceptT (n (Either e ()) -> ExceptT e n ()) -> n (Either e ()) -> ExceptT e n () forall a b. (a -> b) -> a -> b $ Either e () -> n (Either e ()) forall (m :: * -> *) a. Monad m => a -> m a return (Either e () -> n (Either e ())) -> Either e () -> n (Either e ()) forall a b. (a -> b) -> a -> b $ e -> Either e () forall a b. a -> Either a b Left e e