sig
  type t
  val compare : Name.t -> Name.t -> int
  val pp : Format.formatter -> Name.t -> unit
  val from_string : string -> Name.t
  val to_string : Name.t -> string
  val from_rope : Ulib.Text.t -> Name.t
  val to_rope : Name.t -> Ulib.Text.t
  val rename : (Ulib.Text.t -> Ulib.Text.t) -> Name.t -> Name.t
  val starts_with_upper_letter : Name.t -> bool
  val uncapitalize : Name.t -> Name.t option
  val starts_with_lower_letter : Name.t -> bool
  val capitalize : Name.t -> Name.t option
  val starts_with_underscore : Name.t -> bool
  val remove_underscore : Name.t -> Name.t option
  val fresh : Ulib.Text.t -> (Name.t -> bool) -> Name.t
  val fresh_num_list : int -> Ulib.Text.t -> (Name.t -> bool) -> Name.t list
  val fresh_list : (Name.t -> bool) -> Name.t list -> Name.t list
  type lskips_t
  val lskip_pp : Format.formatter -> Name.lskips_t -> unit
  val from_x : Ast.x_l -> Name.lskips_t
  val from_ix : Ast.ix_l -> Name.lskips_t
  val add_lskip : Name.t -> Name.lskips_t
  val strip_lskip : Name.lskips_t -> Name.t
  val get_lskip : Name.lskips_t -> Ast.lex_skips
  val add_pre_lskip : Ast.lex_skips -> Name.lskips_t -> Name.lskips_t
  val replace_lskip : Name.lskips_t -> Ast.lex_skips -> Name.lskips_t
  val lskip_rename :
    (Ulib.Text.t -> Ulib.Text.t) -> Name.lskips_t -> Name.lskips_t
  val to_output_format :
    (Output.id_annot -> Ulib.Text.t -> Output.t) ->
    Output.id_annot -> Name.lskips_t -> Output.t
  val to_output : Output.id_annot -> Name.lskips_t -> Output.t
  val to_output_quoted :
    string -> string -> Output.id_annot -> Name.lskips_t -> Output.t
  val to_rope_tex : Output.id_annot -> Name.t -> Ulib.Text.t
end