sig
  type 'a set
  val empty : 'Set_list.set
  val singleton : '-> 'Set_list.set
  val of_list : 'a list -> 'Set_list.set
  val to_list : 'Set_list.set -> 'a list
  val intersection : 'Set_list.set -> 'Set_list.set -> 'Set_list.set
  val subtract : 'a set -> 'a set -> 'a set
  val has_intersection : 'Set_list.set -> 'Set_list.set -> bool
  val union : 'Set_list.set -> 'Set_list.set -> 'Set_list.set
  val subtract : 'Set_list.set -> 'Set_list.set -> 'Set_list.set
  val mem : '-> 'Set_list.set -> bool
  val iter : ('-> unit) -> 'Set_list.set -> unit
end