sig
  type elt
  type t
  val empty : Datatype.SET.t
  val singleton : Datatype.SET.elt -> Datatype.SET.t
  val add : Datatype.SET.elt -> Datatype.SET.t -> Datatype.SET.t
  val iter : (Datatype.SET.elt -> unit) -> Datatype.SET.t -> unit
  val fold : (Datatype.SET.elt -> '-> 'a) -> Datatype.SET.t -> '-> 'a
end