Parameters
Y : Stdlib.Map.OrderedTypeZ : Stdlib.Map.OrderedType
Signature
type 'a decompose_fun = 'a -> (Y.t * 'a list) optiontype t
val empty : t
val add : t -> 'a decompose_fun -> ('a * Z.t) -> tval rmv : t -> 'a decompose_fun -> ('a * Z.t) -> t
type 'tree lookup_fun = 'tree -> (Y.t * 'tree list) lookup_res
val lookup : t -> 'term lookup_fun -> 'term -> Z.t listval app : (Z.t -> unit) -> t -> unit