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