Module type Env.CORE

Operation of Env comonad parametrized over an inner comonad and env.

type env

The encapsulated environment.

type 'a comonad

The inner comonad.

type 'a t = env * 'a comonad

The type held by the env comonad.

val lower : 'a t -> 'a comonad

get the underlying comonad.

val run : 'a t -> env * 'a comonad

Unwrap the env computation.

val ask : 'a t -> env

Retrieves the environment.

val asks : (env -> 'b) -> 'a t -> 'b

Retrieves the environment and apply a function.

val local : (env -> env) -> 'a t -> 'a t

Modifies the environment using the specified function.

module Local (Env : Types.T0) : sig ... end

Perform local with an other environment.