sig
  val escape_gen_exn :
    escapeworthy_map:(char * char) list ->
    escape_char:char -> (string -> string) Staged.t
  val escape_gen :
    escapeworthy_map:(char * char) list ->
    escape_char:char -> (string -> string) Or_error.t
  val escape :
    escapeworthy:char list -> escape_char:char -> (string -> string) Staged.t
  val unescape_gen_exn :
    escapeworthy_map:(char * char) list ->
    escape_char:char -> (string -> string) Staged.t
  val unescape_gen :
    escapeworthy_map:(char * char) list ->
    escape_char:char -> (string -> string) Or_error.t
  val unescape : escape_char:char -> (string -> string) Staged.t
  val is_char_escaping : string -> escape_char:char -> int -> bool
  val is_char_escaped : string -> escape_char:char -> int -> bool
  val is_char_literal : string -> escape_char:char -> int -> bool
  val index : string -> escape_char:char -> char -> int option
  val index_exn : string -> escape_char:char -> char -> int
  val rindex : string -> escape_char:char -> char -> int option
  val rindex_exn : string -> escape_char:char -> char -> int
  val index_from : string -> escape_char:char -> int -> char -> int option
  val index_from_exn : string -> escape_char:char -> int -> char -> int
  val rindex_from : string -> escape_char:char -> int -> char -> int option
  val rindex_from_exn : string -> escape_char:char -> int -> char -> int
  val split : string -> on:char -> escape_char:char -> string list
  val split_on_chars :
    string -> on:char list -> escape_char:char -> string list
  val lsplit2 :
    string -> on:char -> escape_char:char -> (string * string) option
  val lsplit2_exn : string -> on:char -> escape_char:char -> string * string
  val rsplit2 :
    string -> on:char -> escape_char:char -> (string * string) option
  val rsplit2_exn : string -> on:char -> escape_char:char -> string * string
end