sig
  type 'a elt_
  type 'a set
  val create : int -> 'Hash_set.Mono_or_poly.set
  val add :
    'Hash_set.Mono_or_poly.set -> 'Hash_set.Mono_or_poly.elt_ -> unit
  val strict_add :
    'Hash_set.Mono_or_poly.set -> 'Hash_set.Mono_or_poly.elt_ -> unit
  val remove :
    'Hash_set.Mono_or_poly.set -> 'Hash_set.Mono_or_poly.elt_ -> unit
  val strict_remove :
    'Hash_set.Mono_or_poly.set -> 'Hash_set.Mono_or_poly.elt_ -> unit
  val clear : 'Hash_set.Mono_or_poly.set -> unit
  val fold :
    f:('-> 'Hash_set.Mono_or_poly.elt_ -> 'a) ->
    init:'-> 'Hash_set.Mono_or_poly.set -> 'a
  val iter :
    f:('Hash_set.Mono_or_poly.elt_ -> unit) ->
    'Hash_set.Mono_or_poly.set -> unit
  val length : 'Hash_set.Mono_or_poly.set -> int
  val mem :
    'Hash_set.Mono_or_poly.set -> 'Hash_set.Mono_or_poly.elt_ -> bool
  val of_list :
    'Hash_set.Mono_or_poly.elt_ list -> 'Hash_set.Mono_or_poly.set
  val to_list :
    'Hash_set.Mono_or_poly.set -> 'Hash_set.Mono_or_poly.elt_ list
end