sig
val of_native_substring :
empty:'a ->
init:(unit -> 'b) ->
on_new_character:('b -> 'c -> 'd) ->
finalize:('b -> 'a) ->
read_character_from_native_string:(buf:string ->
index:int -> ('c * int) option) ->
string ->
offset:int ->
length:int ->
('a, [> `out_of_bounds | `wrong_char_at of int ]) Sosa.result
val of_native_string :
(string ->
offset:int ->
length:int ->
[< `Error of [< `out_of_bounds | `wrong_char_at of 'a ] | `Ok of 'b ]) ->
string -> ('b, [> `wrong_char_at of 'a ]) Sosa.result
val to_native_string_knowing_size :
future_size:('a -> int) ->
iter:('a -> f:('b -> unit) -> 'c) ->
write_char_to_native_string:('b ->
buf:string ->
index:int ->
[< `Error of [< `out_of_bounds ]
| `Ok of int ]) ->
'a -> string
end