Module Webs.Env

Service environments TODO try to do without.

Environments are heterogenous key-value maps attached to requests and responses. They can be used by services and layers to store and share data.


type 'a key

The type for keys for whose lookup value is of type 'a.

val key : unit -> 'a key

key () is a new key.


type t

The type for environments.

val empty : t

empty is the empty environent.

val is_empty : t -> bool

is_empty e is true iff e is empty.

val mem : 'a key -> t -> bool

mem k e is true iff k is bound in e.

val add : 'a key -> 'a -> t -> t

add k v e is e with k bound to v.

val remove : 'a key -> t -> t

remove k e is e with k unbound.

val find : 'a key -> t -> 'a option

find k e is the value of k's binding in e, if any.

val get : 'a key -> t -> 'a

get k m is the value of k's binding in m.

raises Invalid_argument

if k is not bound in m.

val override : t -> by:t -> t

override m ~by are the definitions of both m and m' with those of ~by taking over.