functor (Set : SMALLSET->
  sig
    type 'a d =
        [ `Eq of '| `Lower of '| `LowerUpper of 'a * '| `Upper of 'a ]
    type elm = Set.t
    type t = elm d
    val create_lower : elm -> t
    val create_upper : elm -> t
    val create_lowerupper : elm -> elm -> t
    val compare : t -> t -> int
    val merge : t -> t -> t
    val get_exact : t -> elm option
    val string_of : t -> string
    val normalize : t -> t
  end