sig
external get : string -> int -> char = "%string_safe_get"
external create : int -> bytes = "caml_create_string"
val make : int -> char -> string
val copy : string -> string
val sub : string -> int -> int -> string
val fill : bytes -> int -> int -> char -> unit
val concat : string -> string list -> string
val trim : string -> string
val escaped : string -> string
val index : string -> char -> int
val rindex : string -> char -> int
val index_from : string -> int -> char -> int
val rindex_from : string -> int -> char -> int
val contains : string -> char -> bool
val contains_from : string -> int -> char -> bool
val rcontains_from : string -> int -> char -> bool
val uppercase : string -> string
val lowercase : string -> string
val capitalize : string -> string
val uncapitalize : string -> string
type t = string
external unsafe_get : string -> int -> char = "%string_unsafe_get"
external unsafe_set : bytes -> int -> char -> unit = "%string_unsafe_set"
external unsafe_blit : string -> int -> bytes -> int -> int -> unit
= "caml_blit_string" "noalloc"
external unsafe_fill : bytes -> int -> int -> char -> unit
= "caml_fill_string" "noalloc"
type 'a gen = unit -> 'a option
type 'a sequence = ('a -> unit) -> unit
type 'a klist = unit -> [ `Cons of 'a * 'a klist | `Nil ]
module type S =
sig
type t
val length : t -> int
val blit : t -> int -> Bytes.t -> int -> int -> unit
val fold : ('a -> char -> 'a) -> 'a -> t -> 'a
val to_gen : t -> char gen
val to_seq : t -> char sequence
val to_klist : t -> char klist
val to_list : t -> char list
val pp : Buffer.t -> t -> unit
val print : Format.formatter -> t -> unit
end
val equal : string -> string -> bool
val compare : string -> string -> int
val hash : string -> int
val init : int -> (int -> char) -> string
val rev : string -> string
val pad : ?side:[ `Left | `Right ] -> ?c:char -> int -> string -> string
val of_char : char -> string
val of_gen : char gen -> string
val of_seq : char sequence -> string
val of_klist : char klist -> string
val of_list : char list -> string
val of_array : char array -> string
val to_array : string -> char array
val find : ?start:int -> sub:string -> string -> int
val find_all : ?start:int -> sub:string -> string -> int gen
val find_all_l : ?start:int -> sub:string -> string -> int list
val mem : ?start:int -> sub:string -> string -> bool
val rfind : sub:string -> string -> int
val replace :
?which:[ `All | `Left | `Right ] ->
sub:string -> by:string -> string -> string
val is_sub : sub:string -> int -> string -> int -> len:int -> bool
val repeat : string -> int -> string
val prefix : pre:string -> string -> bool
val suffix : suf:string -> string -> bool
val chop_prefix : pre:string -> string -> string option
val chop_suffix : suf:string -> string -> string option
val take : int -> string -> string
val drop : int -> string -> string
val take_drop : int -> string -> string * string
val lines : string -> string list
val lines_gen : string -> string gen
val concat_gen : sep:string -> string gen -> string
val unlines : string list -> string
val unlines_gen : string gen -> string
val set : string -> int -> char -> string
val iter : (char -> unit) -> string -> unit
val iteri : (int -> char -> unit) -> string -> unit
val map : (char -> char) -> string -> string
val mapi : (int -> char -> char) -> string -> string
val filter_map : (char -> char option) -> string -> string
val filter : (char -> bool) -> string -> string
val flat_map : ?sep:string -> (char -> string) -> string -> string
val for_all : (char -> bool) -> string -> bool
val exists : (char -> bool) -> string -> bool
val length : string -> int
val blit : string -> int -> Bytes.t -> int -> int -> unit
val fold : ('a -> char -> 'a) -> 'a -> string -> 'a
val to_gen : string -> char gen
val to_seq : string -> char sequence
val to_klist : string -> char klist
val to_list : string -> char list
val pp : Buffer.t -> string -> unit
val print : Format.formatter -> string -> unit
val map2 : (char -> char -> char) -> string -> string -> string
val iter2 : (char -> char -> unit) -> string -> string -> unit
val iteri2 : (int -> char -> char -> unit) -> string -> string -> unit
val fold2 : ('a -> char -> char -> 'a) -> 'a -> string -> string -> 'a
val for_all2 : (char -> char -> bool) -> string -> string -> bool
val exists2 : (char -> char -> bool) -> string -> string -> bool
val capitalize_ascii : string -> string
val uncapitalize_ascii : string -> string
val uppercase_ascii : string -> string
val lowercase_ascii : string -> string
module Split = CCString.Split
val compare_versions : string -> string -> int
module Sub = CCString.Sub
end