in-other-words-0.1.0.0: A higher-order effect system where the sky's the limit
Safe HaskellNone
LanguageHaskell2010

Control.Effect.Internal.Regional

Synopsis

Documentation

newtype HoistCall b Source #

Constructors

HoistCall (forall x. b x -> b x) 

Instances

Instances details
(Carrier m, MonadBaseControl b m) => PrimHandler HoistToFinalH (Hoist b :: (Type -> Type) -> Type -> Type) m Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Carrier m => PrimHandler HoistH (Hoist m :: (Type -> Type) -> Type -> Type) m Source # 
Instance details

Defined in Control.Effect.Internal.Regional

type Hoist (b :: * -> *) = Regional (HoistCall b) Source #

A useful specialization of Regional where the constant type is HoistCall b. From this, you can derive hoist.

data HoistH Source #

Instances

Instances details
Carrier m => PrimHandler HoistH (Hoist m :: (Type -> Type) -> Type -> Type) m Source # 
Instance details

Defined in Control.Effect.Internal.Regional

data HoistToFinalH Source #

Instances

Instances details
(Carrier m, MonadBaseControl b m) => PrimHandler HoistToFinalH (Hoist b :: (Type -> Type) -> Type -> Type) m Source # 
Instance details

Defined in Control.Effect.Internal.Regional

newtype HoistC m a Source #

Constructors

HoistC 

Fields

Instances

Instances details
MonadTrans (HoistC :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

lift :: Monad m => m a -> HoistC m a #

MonadTransControl (HoistC :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Associated Types

type StT HoistC a #

Methods

liftWith :: Monad m => (Run HoistC -> m a) -> HoistC m a #

restoreT :: Monad m => m (StT HoistC a) -> HoistC m a #

Monad m => Monad (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

(>>=) :: HoistC m a -> (a -> HoistC m b) -> HoistC m b #

(>>) :: HoistC m a -> HoistC m b -> HoistC m b #

return :: a -> HoistC m a #

Functor m => Functor (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

fmap :: (a -> b) -> HoistC m a -> HoistC m b #

(<$) :: a -> HoistC m b -> HoistC m a #

MonadFix m => MonadFix (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

mfix :: (a -> HoistC m a) -> HoistC m a #

MonadFail m => MonadFail (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

fail :: String -> HoistC m a #

Applicative m => Applicative (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

pure :: a -> HoistC m a #

(<*>) :: HoistC m (a -> b) -> HoistC m a -> HoistC m b #

liftA2 :: (a -> b -> c) -> HoistC m a -> HoistC m b -> HoistC m c #

(*>) :: HoistC m a -> HoistC m b -> HoistC m b #

(<*) :: HoistC m a -> HoistC m b -> HoistC m a #

MonadIO m => MonadIO (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

liftIO :: IO a -> HoistC m a #

Alternative m => Alternative (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

empty :: HoistC m a #

(<|>) :: HoistC m a -> HoistC m a -> HoistC m a #

some :: HoistC m a -> HoistC m [a] #

many :: HoistC m a -> HoistC m [a] #

MonadPlus m => MonadPlus (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

mzero :: HoistC m a #

mplus :: HoistC m a -> HoistC m a -> HoistC m a #

MonadThrow m => MonadThrow (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

throwM :: Exception e => e -> HoistC m a #

MonadCatch m => MonadCatch (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

catch :: Exception e => HoistC m a -> (e -> HoistC m a) -> HoistC m a #

MonadMask m => MonadMask (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Methods

mask :: ((forall a. HoistC m a -> HoistC m a) -> HoistC m b) -> HoistC m b #

uninterruptibleMask :: ((forall a. HoistC m a -> HoistC m a) -> HoistC m b) -> HoistC m b #

generalBracket :: HoistC m a -> (a -> ExitCase b -> HoistC m c) -> (a -> HoistC m b) -> HoistC m (b, c) #

Carrier m => Carrier (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

Associated Types

type Derivs (HoistC m) :: [Effect] Source #

type Prims (HoistC m) :: [Effect] Source #

type StT (HoistC :: (Type -> Type) -> Type -> Type) a Source # 
Instance details

Defined in Control.Effect.Internal.Regional

type StT (HoistC :: (Type -> Type) -> Type -> Type) a = StT (IdentityT :: (Type -> Type) -> Type -> Type) a
type Derivs (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

type Derivs (HoistC m) = Derivs (InterpretPrimC HoistH (Hoist m :: (Type -> Type) -> Type -> Type) m)
type Prims (HoistC m) Source # 
Instance details

Defined in Control.Effect.Internal.Regional

type Prims (HoistC m) = Prims (InterpretPrimC HoistH (Hoist m :: (Type -> Type) -> Type -> Type) m)