sig
  val list_to_ord_set : 'a list -> 'a list
  val ord_insert : 'a list -> '-> 'a list
  val ord_union : 'a list -> 'a list -> 'a list
  val ord_intersection : 'a list -> 'a list -> 'a list
  val ord_subtract : 'a list -> 'a list -> 'a list
  val ord_symdiff : 'a list -> 'a list -> 'a list
  val ord_subset : 'a list -> 'a list -> bool
  val ord_disjoint : 'a list -> 'a list -> bool
  val ord_intersect : 'a list -> 'a list -> bool
  module type AuxOrderedType =
    sig
      type t
      type aux
      val compare :
        Ordset.AuxOrderedType.aux ->
        Ordset.AuxOrderedType.t -> Ordset.AuxOrderedType.t -> int
    end
  module type AuxS =
    sig
      type elem
      type aux
      val list_to_ord_set :
        Ordset.AuxS.aux -> Ordset.AuxS.elem list -> Ordset.AuxS.elem list
      val ord_insert :
        Ordset.AuxS.aux ->
        Ordset.AuxS.elem list -> Ordset.AuxS.elem -> Ordset.AuxS.elem list
      val ord_union :
        Ordset.AuxS.aux ->
        Ordset.AuxS.elem list ->
        Ordset.AuxS.elem list -> Ordset.AuxS.elem list
      val ord_intersection :
        Ordset.AuxS.aux ->
        Ordset.AuxS.elem list ->
        Ordset.AuxS.elem list -> Ordset.AuxS.elem list
      val ord_subtract :
        Ordset.AuxS.aux ->
        Ordset.AuxS.elem list ->
        Ordset.AuxS.elem list -> Ordset.AuxS.elem list
      val ord_symdiff :
        Ordset.AuxS.aux ->
        Ordset.AuxS.elem list ->
        Ordset.AuxS.elem list -> Ordset.AuxS.elem list
      val ord_subset :
        Ordset.AuxS.aux ->
        Ordset.AuxS.elem list -> Ordset.AuxS.elem list -> bool
      val ord_disjoint :
        Ordset.AuxS.aux ->
        Ordset.AuxS.elem list -> Ordset.AuxS.elem list -> bool
      val ord_intersect :
        Ordset.AuxS.aux ->
        Ordset.AuxS.elem list -> Ordset.AuxS.elem list -> bool
    end
  module MakeAux :
    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
end