sig
  type t = string
  exception Malformed_code
  val validate : t -> unit
  val get : t -> int -> BatUChar.t
  val init : int -> (int -> BatUChar.t) -> t
  val length : t -> int
  type index = int
  val nth : t -> int -> index
  val first : t -> index
  val last : t -> index
  val look : t -> index -> BatUChar.t
  val out_of_range : t -> index -> bool
  val compare_index : t -> index -> index -> int
  val next : t -> index -> index
  val prev : t -> index -> index
  val move : t -> index -> int -> index
  val iter : (BatUChar.t -> unit) -> t -> unit
  val compare : t -> t -> int
  module Buf :
    sig
      type buf = Buffer.t
      val create : int -> buf
      val contents : buf -> t
      val clear : buf -> unit
      val reset : buf -> unit
      val add_char : buf -> BatUChar.t -> unit
      val add_string : buf -> t -> unit
      val add_buffer : buf -> buf -> unit
    end
  val make : int -> BatUChar.t -> t
  val of_string_unsafe : string -> t
  val to_string_unsafe : t -> string
  val of_char : BatUChar.t -> t
  val empty : t
  val sub : t -> int -> int -> t
  val iteri : (BatUChar.t -> int -> unit) -> t -> unit
  val fold : ('-> BatUChar.t -> 'a) -> '-> t -> 'a
  val map : (BatUChar.t -> BatUChar.t) -> t -> t
  val filter_map : (BatUChar.t -> BatUChar.t option) -> t -> t
  val filter : (BatUChar.t -> bool) -> t -> t
  val rindex : t -> BatUChar.t -> int
  val contains : t -> BatUChar.t -> bool
  val escaped : t -> t
  val of_latin1 : string -> t
  val length0 : int -> int
  module ByteIndex :
    sig
      type t = string
      type b_idx = BatUTF8.ByteIndex.b_idx
      type char_idx = int
      val of_int_unsafe : int -> b_idx
      val to_int : b_idx -> int
      val next : t -> b_idx -> b_idx
      val prev : t -> b_idx -> b_idx
      val of_char_idx : t -> char_idx -> b_idx
      val at_end : t -> b_idx -> bool
      val out_of_range : t -> b_idx -> bool
      val first : b_idx
      val last : t -> b_idx
      val move : t -> b_idx -> int -> b_idx
      val look : t -> b_idx -> BatUChar.t
    end
end