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