yaftee-basic-monads
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Yaftee.Except

Synopsis

NORMAL

type E = Named "" Source #

throw :: forall e (effs :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]) i o a. Member (E e) effs => e -> E effs i o a Source #

catch :: forall e (effs :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]) i o a. Member (E e) effs => E effs i o a -> (e -> E effs i o a) -> E effs i o a Source #

run :: forall e (effs :: [HT]) i o a. Loose (U effs) => E (E e ': effs) i o a -> E effs i o (Either e a) Source #

runExc :: forall e e' (effs :: [HT]) i o a. (Loose (U effs), Member (E e') effs) => (e -> e') -> (e' -> e) -> E (E e ': effs) i o a -> E effs i o a Source #

runIO :: Exception e => E '[E e, I] i o a -> E '[I] i o a Source #

fromIO :: forall (es :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]) a i o. forall e -> (Exception e, Member (E e) es, Base I es) => IO a -> E es i o a Source #

NAMED

data Named (nm :: Symbol) e (f :: Type -> Type -> Type -> Type) i o a Source #

Instances

Instances details
Loose (Named nm e) Source # 
Instance details

Defined in Control.Monad.Yaftee.Except

Methods

map :: (forall i o x. f i o x -> g i o (t x)) -> (forall x. x -> t x) -> Named nm e f i' o' x' -> Named nm e g i' o' (t x') #

Tight (Named nm e) Source # 
Instance details

Defined in Control.Monad.Yaftee.Except

Methods

mapT :: (f i o x -> g i' o' y) -> (x -> y) -> Named nm e f i o x -> Named nm e g i' o' y #

throwN :: forall e (effs :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]) i o a. forall (nm :: Symbol) -> Member (Named nm e) effs => e -> E effs i o a Source #

catchN :: forall e (effs :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]) i o a. forall (nm :: Symbol) -> Member (Named nm e) effs => E effs i o a -> (e -> E effs i o a) -> E effs i o a Source #

runN :: forall (nm :: Symbol) e (effs :: [HT]) i o a. Loose (U effs) => E (Named nm e ': effs) i o a -> E effs i o (Either e a) Source #

runExcN :: forall (nm :: Symbol) e e' (effs :: [HT]) i o a. forall (nm' :: Symbol) -> (Loose (U effs), Member (Named nm' e') effs) => (e -> e') -> (e' -> e) -> E (Named nm e ': effs) i o a -> E effs i o a Source #

runION :: forall e (nm :: Symbol) i o a. Exception e => E '[Named nm e, I] i o a -> E '[I] i o a Source #

fromION :: forall (es :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]) r i o. forall (nm :: Symbol) e -> (Exception e, Member (Named nm e) es, Base I es) => IO r -> E es i o r Source #

TOOLS

fromJust :: forall e (es :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]) a i o. Member (E e) es => e -> Maybe a -> E es i o a Source #

getLeft :: forall e (es :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]) a b i o. Member (E e) es => e -> Either a b -> E es i o a Source #

getRight :: forall e (es :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]) a b i o. Member (E e) es => e -> Either a b -> E es i o b Source #