functor (Ord : AuxOrderedType->
  sig
    type elem = Ord.t
    type aux = Ord.aux
    val list_to_ord_set : aux -> elem list -> elem list
    val ord_insert : aux -> elem list -> elem -> elem list
    val ord_union : aux -> elem list -> elem list -> elem list
    val ord_intersection : aux -> elem list -> elem list -> elem list
    val ord_subtract : aux -> elem list -> elem list -> elem list
    val ord_symdiff : aux -> elem list -> elem list -> elem list
    val ord_subset : aux -> elem list -> elem list -> bool
    val ord_disjoint : aux -> elem list -> elem list -> bool
    val ord_intersect : aux -> elem list -> elem list -> bool
  end