Module

Control.Comonad.Env.Trans

This module defines the environment comonad transformer, EnvT.

#EnvT

newtype EnvT :: forall k. Type -> (k -> Type) -> k -> Typenewtype EnvT e w a

The environment comonad transformer.

This comonad transformer extends the context of a value in the base comonad with a global environment of type e.

The ComonadEnv type class describes the operations supported by this comonad.

Constructors

Instances

#runEnvT

runEnvT :: forall e w a. EnvT e w a -> Tuple e (w a)

Unwrap a value in the EnvT comonad.

#withEnvT

withEnvT :: forall e1 e2 w a. (e1 -> e2) -> EnvT e1 w a -> EnvT e2 w a

Change the environment type in an EnvT context.

#mapEnvT

mapEnvT :: forall e w1 w2 a b. (w1 a -> w2 b) -> EnvT e w1 a -> EnvT e w2 b

Change the underlying comonad and data type in an EnvT context.

Modules