functor (O : Immutable_types.Comparable) -> sig type t val make : unit -> t val merge : t -> t -> t type elt = O.t val add : elt -> t -> t val value : t -> elt list val lookup : elt -> t -> bool end