sig
  type t
  val make : unit -> t
  val merge : t -> t -> t
  type elt
  val add : Immutable_types.GSet.elt -> t -> t
  val value : t -> Immutable_types.GSet.elt list
  val lookup : Immutable_types.GSet.elt -> t -> bool
end