sig
  type t
  and elt
  val empty : Ranked_alphabet.S.t
  val is_empty : Ranked_alphabet.S.t -> bool
  val rank : Ranked_alphabet.S.elt -> int
  val mem : Ranked_alphabet.S.elt -> Ranked_alphabet.S.t -> bool
  val add :
    Ranked_alphabet.S.elt -> Ranked_alphabet.S.t -> Ranked_alphabet.S.t
  val singleton : Ranked_alphabet.S.elt -> Ranked_alphabet.S.t
  val remove :
    Ranked_alphabet.S.elt -> Ranked_alphabet.S.t -> Ranked_alphabet.S.t
  val union :
    Ranked_alphabet.S.t -> Ranked_alphabet.S.t -> Ranked_alphabet.S.t
  val inter :
    Ranked_alphabet.S.t -> Ranked_alphabet.S.t -> Ranked_alphabet.S.t
  val diff :
    Ranked_alphabet.S.t -> Ranked_alphabet.S.t -> Ranked_alphabet.S.t
  val compare : Ranked_alphabet.S.t -> Ranked_alphabet.S.t -> int
  val equal : Ranked_alphabet.S.t -> Ranked_alphabet.S.t -> bool
  val subset : Ranked_alphabet.S.t -> Ranked_alphabet.S.t -> bool
  val iter : (Ranked_alphabet.S.elt -> unit) -> Ranked_alphabet.S.t -> unit
  val fold :
    (Ranked_alphabet.S.elt -> '-> 'a) -> Ranked_alphabet.S.t -> '-> 'a
  val for_all :
    (Ranked_alphabet.S.elt -> bool) -> Ranked_alphabet.S.t -> bool
  val exists : (Ranked_alphabet.S.elt -> bool) -> Ranked_alphabet.S.t -> bool
  val partition :
    (Ranked_alphabet.S.elt -> bool) ->
    Ranked_alphabet.S.t -> Ranked_alphabet.S.t * Ranked_alphabet.S.t
  val cardinal : Ranked_alphabet.S.t -> int
  val elements : Ranked_alphabet.S.t -> Ranked_alphabet.S.elt list
  val min_elt : Ranked_alphabet.S.t -> Ranked_alphabet.S.elt
  val max_elt : Ranked_alphabet.S.t -> Ranked_alphabet.S.elt
  val choose : Ranked_alphabet.S.t -> Ranked_alphabet.S.elt
  val to_string : Ranked_alphabet.S.t -> string
  val elt_to_string : Ranked_alphabet.S.elt -> string
  val from_list : Ranked_alphabet.S.elt list -> Ranked_alphabet.S.t
end