Module type Meta.KEY

The type for key modules.

A key module is a module that handles a specific key.

type 'a meta := 'a t
type 'a value

The type for the key's value.

val mem : 'a meta -> bool

mem m is true iff m has a binding for the key.

val add : 'a value -> 'a meta -> 'a meta

add v m is m with the key bound to v

val find : 'a meta -> 'a value option

find m is the binding for the key (if any).

val remove : 'a meta -> 'a meta

remove m is m with the binding for the key removed (if bound).