


The standard library Text api defines access to functionality of seven different string-related packages: char, string, substring, char_vector, rw_char_vector, char_vector_slice, rw_char_vector_slice.
The Text api is implemented by the text package.
The Text api source code is in src/lib/std/src/text.api.
The above information is manually maintained and may contain errors.
api { package char : api {
eqtype Char ;
eqtype String ;
from_int : Int -> Char;
to_int : Char -> Int;
min_char : Char;
max_char : Char;
max_ord : Int;
prior : Char -> Char;
next : Char -> Char;
< : (Char , Char) -> Bool;
<= : (Char , Char) -> Bool;
> : (Char , Char) -> Bool;
>= : (Char , Char) -> Bool;
compare : (Char , Char) -> Order;
scan : string_conversion::Reader((Char, X) ) -> string_conversion::Reader((Char, X) );
from_string : ?.string::String -> Null_Or(Char );
to_string : Char -> ?.string::String;
from_cstring : ?.string::String -> Null_Or(Char );
to_cstring : Char -> ?.string::String;
contains : String -> Char -> Bool;
not_contains : String -> Char -> Bool;
is_lower : Char -> Bool;
is_upper : Char -> Bool;
is_digit : Char -> Bool;
is_alpha : Char -> Bool;
is_hex_digit : Char -> Bool;
is_alpha_num : Char -> Bool;
is_print : Char -> Bool;
is_space : Char -> Bool;
is_punct : Char -> Bool;
is_graph : Char -> Bool;
is_cntrl : Char -> Bool;
is_ascii : Char -> Bool;
to_upper : Char -> Char;
to_lower : Char -> Char;
};;
package string : api {
eqtype Char ;
eqtype String ;
max_size : Int;
length : String -> Int;
get : (String , Int) -> Char;
_[] : (String , Int) -> Char;
extract : (String , Int , Null_Or(Int )) -> String;
substring : (String , Int , Int) -> String;
+ : (String , String) -> String;
cat : List(String ) -> String;
join : String -> List(String ) -> String;
join' : String
-> String -> String -> List(String ) -> String;
from_char : Char -> String;
implode : List(Char ) -> String;
explode : String -> List(Char );
chomp : String -> String;
map : (Char -> Char) -> String -> String;
translate : (Char -> String) -> String -> String;
tokens : (Char -> Bool) -> String -> List(String );
fields : (Char -> Bool) -> String -> List(String );
is_prefix : String -> String -> Bool;
is_substring : String -> String -> Bool;
is_suffix : String -> String -> Bool;
compare : (String , String) -> Order;
collate : ((Char , Char) -> Order)
-> (String , String) -> Order;
< : (String , String) -> Bool;
<= : (String , String) -> Bool;
> : (String , String) -> Bool;
>= : (String , String) -> Bool;
to_lower : String -> String;
to_upper : String -> String;
has_lower : String -> Bool;
has_upper : String -> Bool;
from_string : ?.string::String -> Null_Or(String );
to_string : String -> ?.string::String;
from_cstring : ?.string::String -> Null_Or(String );
to_cstring : String -> ?.string::String;
};;
package substring : api {
eqtype Char ;
eqtype String ;
Substring ;
get : (Substring , Int) -> Char;
size : Substring -> Int;
base : Substring -> (String , Int , Int);
extract : (String , Int , Null_Or(Int )) -> Substring;
make_substring : (String , Int , Int) -> Substring;
from_string : String -> Substring;
to_string : Substring -> String;
is_empty : Substring -> Bool;
getc : Substring -> Null_Or(((Char , Substring)) );
first : Substring -> Null_Or(Char );
drop_first : Int -> Substring -> Substring;
drop_last : Int -> Substring -> Substring;
make_slice : (Substring , Int , Null_Or(Int )) -> Substring;
cat : List(Substring ) -> String;
join : String -> List(Substring ) -> String;
join' : String
-> String -> String -> List(Substring ) -> String;
explode : Substring -> List(Char );
is_prefix : String -> Substring -> Bool;
is_substring : String -> Substring -> Bool;
is_suffix : String -> Substring -> Bool;
compare : (Substring , Substring) -> Order;
collate : ((Char , Char) -> Order)
-> (Substring , Substring) -> Order;
get_prefix : (Char -> Bool) -> Substring -> Substring;
get_suffix : (Char -> Bool) -> Substring -> Substring;
drop_prefix : (Char -> Bool) -> Substring -> Substring;
drop_suffix : (Char -> Bool) -> Substring -> Substring;
split_off_prefix : (Char -> Bool)
-> Substring -> (Substring , Substring);
split_off_suffix : (Char -> Bool)
-> Substring -> (Substring , Substring);
split_at : (Substring , Int) -> (Substring , Substring);
position : String -> Substring -> (Substring , Substring);
span : (Substring , Substring) -> Substring;
translate : (Char -> String) -> Substring -> String;
tokens : (Char -> Bool) -> Substring -> List(Substring );
fields : (Char -> Bool) -> Substring -> List(Substring );
apply : (Char -> Void) -> Substring -> Void;
fold_left : ((Char , X) -> X) -> X -> Substring -> X;
fold_right : ((Char , X) -> X) -> X -> Substring -> X;
};;
package char_vector : api {
Vector ;
Element ;
max_len : Int;
from_list : List(Element ) -> Vector;
tabulate : (Int , (Int -> Element)) -> Vector;
length : Vector -> Int;
cat : List(Vector ) -> Vector;
get : (Vector , Int) -> Element;
set : (Vector , Int , Element) -> Vector;
keyed_apply : ((Int , Element) -> Void) -> Vector -> Void;
apply : (Element -> Void) -> Vector -> Void;
keyed_map : ((Int , Element) -> Element) -> Vector -> Vector;
map : (Element -> Element) -> Vector -> Vector;
keyed_fold_left : ((Int , Element , X) -> X) -> X -> Vector -> X;
keyed_fold_right : ((Int , Element , X) -> X) -> X -> Vector -> X;
fold_left : ((Element , X) -> X) -> X -> Vector -> X;
fold_right : ((Element , X) -> X) -> X -> Vector -> X;
findi : ((Int , Element) -> Bool)
-> Vector -> Null_Or(((Int , Element)) );
find : (Element -> Bool) -> Vector -> Null_Or(Element );
exists : (Element -> Bool) -> Vector -> Bool;
all : (Element -> Bool) -> Vector -> Bool;
collate : ((Element , Element) -> Order)
-> (Vector , Vector) -> Order;
};;
package rw_char_vector : api {
eqtype Rw_Vector ;
Element ;
Vector ;
max_len : Int;
make_rw_vector : (Int , Element) -> Rw_Vector;
from_list : List(Element ) -> Rw_Vector;
tabulate : (Int , (Int -> Element)) -> Rw_Vector;
length : Rw_Vector -> Int;
get : (Rw_Vector , Int) -> Element;
_[] : (Rw_Vector , Int) -> Element;
set : (Rw_Vector , Int , Element) -> Void;
_[]:= : (Rw_Vector , Int , Element) -> Void;
to_vector : Rw_Vector -> Vector;
copy : {di:Int, dst:Rw_Vector, src:Rw_Vector} -> Void;
copy_vec : {di:Int, dst:Rw_Vector, src:Vector} -> Void;
keyed_apply : ((Int , Element) -> Void) -> Rw_Vector -> Void;
apply : (Element -> Void) -> Rw_Vector -> Void;
modifyi : ((Int , Element) -> Element) -> Rw_Vector -> Void;
modify : (Element -> Element) -> Rw_Vector -> Void;
keyed_fold_left : ((Int , Element , X) -> X) -> X -> Rw_Vector -> X;
keyed_fold_right : ((Int , Element , X) -> X) -> X -> Rw_Vector -> X;
fold_left : ((Element , X) -> X) -> X -> Rw_Vector -> X;
fold_right : ((Element , X) -> X) -> X -> Rw_Vector -> X;
findi : ((Int , Element) -> Bool)
-> Rw_Vector -> Null_Or(((Int , Element)) );
find : (Element -> Bool)
-> Rw_Vector -> Null_Or(Element );
exists : (Element -> Bool) -> Rw_Vector -> Bool;
all : (Element -> Bool) -> Rw_Vector -> Bool;
collate : ((Element , Element) -> Order)
-> (Rw_Vector , Rw_Vector) -> Order;
};;
package char_vector_slice : api {
Element ;
Vector ;
Slice ;
length : Slice -> Int;
get : (Slice , Int) -> Element;
make_full_slice : Vector -> Slice;
make_slice : (Vector , Int , Null_Or(Int )) -> Slice;
make_subslice : (Slice , Int , Null_Or(Int )) -> Slice;
base : Slice -> (Vector , Int , Int);
to_vector : Slice -> Vector;
cat : List(Slice ) -> Vector;
is_empty : Slice -> Bool;
get_item : Slice -> Null_Or(((Element , Slice)) );
keyed_apply : ((Int , Element) -> Void) -> Slice -> Void;
apply : (Element -> Void) -> Slice -> Void;
keyed_map : ((Int , Element) -> Element) -> Slice -> Vector;
map : (Element -> Element) -> Slice -> Vector;
keyed_fold_left : ((Int , Element , X) -> X) -> X -> Slice -> X;
keyed_fold_right : ((Int , Element , X) -> X) -> X -> Slice -> X;
fold_left : ((Element , X) -> X) -> X -> Slice -> X;
fold_right : ((Element , X) -> X) -> X -> Slice -> X;
findi : ((Int , Element) -> Bool)
-> Slice -> Null_Or(((Int , Element)) );
find : (Element -> Bool) -> Slice -> Null_Or(Element );
exists : (Element -> Bool) -> Slice -> Bool;
all : (Element -> Bool) -> Slice -> Bool;
collate : ((Element , Element) -> Order)
-> (Slice , Slice) -> Order;
};;
package rw_char_vector_slice : api {
Element ;
Rw_Vector ;
Slice ;
Vector ;
Vector_Slice ;
length : Slice -> Int;
get : (Slice , Int) -> Element;
set : (Slice , Int , Element) -> Void;
make_full_slice : Rw_Vector -> Slice;
make_slice : (Rw_Vector , Int , Null_Or(Int )) -> Slice;
make_subslice : (Slice , Int , Null_Or(Int )) -> Slice;
base : Slice -> (Rw_Vector , Int , Int);
to_vector : Slice -> Vector;
copy : {di:Int, dst:Rw_Vector, src:Slice} -> Void;
copy_vec : {di:Int, dst:Rw_Vector, src:Vector_Slice} -> Void;
is_empty : Slice -> Bool;
get_item : Slice -> Null_Or(((Element , Slice)) );
keyed_apply : ((Int , Element) -> Void) -> Slice -> Void;
apply : (Element -> Void) -> Slice -> Void;
modifyi : ((Int , Element) -> Element) -> Slice -> Void;
modify : (Element -> Element) -> Slice -> Void;
keyed_fold_left : ((Int , Element , X) -> X) -> X -> Slice -> X;
keyed_fold_right : ((Int , Element , X) -> X) -> X -> Slice -> X;
fold_left : ((Element , X) -> X) -> X -> Slice -> X;
fold_right : ((Element , X) -> X) -> X -> Slice -> X;
findi : ((Int , Element) -> Bool)
-> Slice -> Null_Or(((Int , Element)) );
find : (Element -> Bool) -> Slice -> Null_Or(Element );
exists : (Element -> Bool) -> Slice -> Bool;
all : (Element -> Bool) -> Slice -> Bool;
collate : ((Element , Element) -> Order)
-> (Slice , Slice) -> Order;
};;
sharing char_vector_slice::Slice =
rw_char_vector_slice::Vector_Slice
sharing rw_char_vector_slice::Rw_Vector = rw_char_vector::Rw_Vector
sharing rw_char_vector_slice::Vector = char_vector_slice::Vector =
rw_char_vector::Vector = char_vector::Vector =
substring::String = string::String = char::String
sharing rw_char_vector_slice::Element = char_vector_slice::Element =
rw_char_vector::Element = char_vector::Element =
substring::Char = string::Char = char::Char
};


