comonads-fd-0.4: Comonad transformers using functional dependencies.

Portabilitynon-portable (fundeps, MPTCs)
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Comonad.Env.Lazy

Contents

Description

The Env comonad (aka the Coreader, Environment, or Product comonad)

A co-Kleisli arrow in the Env comonad is isomorphic to a Kleisli arrow in the reader monad.

(a -> e -> m) ~ (a, e) -> m ~ Env e a -> m

Synopsis

ComonadEnv class

class Comonad w => ComonadEnv e w | w -> e whereSource

Methods

ask :: w a -> eSource

Instances

ComonadEnv e w => ComonadEnv e (IdentityT w) 
ComonadEnv e ((,) e) 
ComonadEnv e w => ComonadEnv e (DiscontT t w) 
ComonadEnv e w => ComonadEnv e (StoreT t w) 
Comonad w => ComonadEnv e (EnvT e w) 

asks :: ComonadEnv e w => (e -> e') -> w a -> e'Source

local :: (e -> e) -> EnvT e w a -> EnvT e w a

The Env comonad

type Env e = EnvT e Identity

env :: e -> a -> Env e a

runEnv :: Env e a -> (e, a)

The EnvT comonad transformer

data EnvT e w a

Constructors

EnvT e (w a) 

Instances

runEnvT :: EnvT e w a -> (e, w a)

Re-exported modules