sig
  type character
  type t
  val empty : Api.MINIMALISTIC_MUTABLE_STRING.t
  val max_string_length : int option
  val make :
    int ->
    Api.MINIMALISTIC_MUTABLE_STRING.character ->
    Api.MINIMALISTIC_MUTABLE_STRING.t
  val length : Api.MINIMALISTIC_MUTABLE_STRING.t -> int
  val compare :
    Api.MINIMALISTIC_MUTABLE_STRING.t ->
    Api.MINIMALISTIC_MUTABLE_STRING.t -> int
  val compare_char :
    Api.MINIMALISTIC_MUTABLE_STRING.character ->
    Api.MINIMALISTIC_MUTABLE_STRING.character -> int
  val get :
    Api.MINIMALISTIC_MUTABLE_STRING.t ->
    int -> Api.MINIMALISTIC_MUTABLE_STRING.character
  val set :
    Api.MINIMALISTIC_MUTABLE_STRING.t ->
    int -> Api.MINIMALISTIC_MUTABLE_STRING.character -> unit
  val blit :
    src:Api.MINIMALISTIC_MUTABLE_STRING.t ->
    src_pos:int ->
    dst:Api.MINIMALISTIC_MUTABLE_STRING.t -> dst_pos:int -> len:int -> unit
  val is_whitespace : Api.MINIMALISTIC_MUTABLE_STRING.character -> bool
  val of_native_string : string -> (t, [> `wrong_char_at of int ]) result
  val of_native_substring :
    string ->
    offset:int ->
    length:int -> (t, [> `out_of_bounds | `wrong_char_at of int ]) result
  val to_native_string : t -> string
end