functor (S : Api.MINIMALISTIC_MUTABLE_STRING) ->
sig
type character = S.character
type t
val max_string_length : int option
val empty : t
val is_empty : t -> bool
val make : int -> character -> t
val length : t -> int
val of_character : character -> t
val of_character_list : character list -> t
val to_character_list : t -> character list
val get : t -> index:int -> character option
val set : t -> index:int -> v:character -> t option
val get_exn : t -> index:int -> character
val set_exn : t -> index:int -> v:character -> t
val concat : ?sep:t -> t list -> t
val of_native_string :
string -> (t, [> `wrong_char_at of int ]) Api.result
val of_native_substring :
string ->
offset:int ->
length:int ->
(t, [> `out_of_bounds | `wrong_char_at of int ]) Api.result
val to_native_string : t -> string
val to_string_hum : t -> string
val fold : t -> init:'a -> f:('a -> character -> 'a) -> 'a
val foldi : t -> init:'a -> f:(int -> 'a -> character -> 'a) -> 'a
val fold2_exn :
t -> t -> init:'a -> f:('a -> character -> character -> 'a) -> 'a
val compare : t -> t -> int
val sub : t -> index:int -> length:int -> t option
val sub_exn : t -> index:int -> length:int -> t
val slice : ?start:int -> ?finish:int -> t -> t option
val slice_exn : ?start:int -> ?finish:int -> t -> t
val is_prefix : t -> prefix:t -> bool
val is_suffix : t -> suffix:t -> bool
val chop_prefix_exn : t -> prefix:t -> t
val chop_prefix : t -> prefix:t -> t option
val chop_suffix_exn : t -> suffix:t -> t
val chop_suffix : t -> suffix:t -> t option
val split_at : t -> index:int -> t * t
val take : t -> index:int -> t
val drop : t -> index:int -> t
val compare_substring : t * int * int -> t * int * int -> int
val compare_substring_strict :
t * int * int -> t * int * int -> int option
val iter : t -> f:(character -> unit) -> unit
val iteri : t -> f:(int -> character -> unit) -> unit
val iter_reverse : t -> f:(character -> unit) -> unit
val rev : t -> t
val map : t -> f:(character -> character) -> t
val mapi : t -> f:(int -> character -> character) -> t
val map2_exn : t -> t -> f:(character -> character -> character) -> t
val for_all : t -> f:(character -> bool) -> bool
val exists : t -> f:(character -> bool) -> bool
val take_while : t -> f:(character -> bool) -> t
val take_while_with_index : t -> f:(int -> character -> bool) -> t
val index_of_character : t -> ?from:int -> character -> int option
val index_of_character_reverse :
t -> ?from:int -> character -> int option
val index_of_string :
?from:int ->
?sub_index:int -> ?sub_length:int -> t -> sub:t -> int option
val index_of_string_reverse :
?from:int ->
?sub_index:int -> ?sub_length:int -> t -> sub:t -> int option
val find :
?from:int -> ?length:int -> t -> f:(character -> bool) -> int option
val find_reverse :
?from:int -> ?length:int -> t -> f:(character -> bool) -> int option
val filter_map :
?from:int -> ?length:int -> t -> f:(character -> character option) -> t
val filter : ?from:int -> ?length:int -> t -> f:(character -> bool) -> t
val split : t -> on:[ `Character of character | `String of t ] -> t list
val strip :
?on:[ `Both | `Left | `Right ] ->
?whitespace:(character -> bool) -> t -> t
module Make_output :
functor (Model : Api.OUTPUT_MODEL) ->
sig
val output :
('a, 'b, 'c) Model.channel -> t -> (unit, 'e, 'f) Model.thread
end
end