Module Store.Make

Create a new store type.

Parameters

Signature

type t

Type of stores

type 'a field

Type of field of such stores

val field : unit -> 'a field

Create a new field

val empty : t

Empty store

val set : t -> 'a field -> 'a -> t

Set a field

val get : t -> 'a field -> 'a option

Get the value of a field, if any

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

Unset the value of the field

val merge : t -> t -> t

merge s1 s2 adds all the fields of s1 into s2.