


The standard library List api defines access to lisp-style Lists.
The List api is implemented by the list package.
The List api source code is in src/lib/std/src/list.api.
The above information is manually maintained and may contain errors.
api { List X = ! (X , List(X )) | NIL;
exception EMPTY;
null : List(X ) -> Bool;
head : List(X ) -> X;
tail : List(X ) -> List(X );
last : List(X ) -> X;
get_item : List(X ) -> Null_Or(((X , List(X ))) );
nth : (List(X ) , Int) -> X;
take_n : (List(X ) , Int) -> List(X );
drop_n : (List(X ) , Int) -> List(X );
split_n : (List(X ) , Int) -> (List(X ) , List(X ));
length : List(X ) -> Int;
reverse : List(X ) -> List(X );
@ : (List(X ) , List(X )) -> List(X );
cat : List(List(X ) ) -> List(X );
reverse_and_prepend : (List(X ) , List(X )) -> List(X );
apply : (X -> Void) -> List(X ) -> Void;
map : (X -> Y) -> List(X ) -> List(Y );
apply' : List(X ) -> (X -> Void) -> Void;
map' : List(X ) -> (X -> Y) -> List(Y );
map_partial_fn : (X -> Null_Or(Y )) -> List(X ) -> List(Y );
find : (X -> Bool) -> List(X ) -> Null_Or(X );
remove_first : (X -> Bool) -> List(X ) -> List(X );
filter : (X -> Bool) -> List(X ) -> List(X );
remove : (X -> Bool) -> List(X ) -> List(X );
partition : (X -> Bool) -> List(X ) -> (List(X ) , List(X ));
split_at_first : (X -> Bool) -> List(X ) -> (List(X ) , List(X ));
prefix_to_first : (X -> Bool) -> List(X ) -> List(X );
suffix_from_first : (X -> Bool) -> List(X ) -> List(X );
fold_backward : ((X , Y) -> Y) -> Y -> List(X ) -> Y;
fold_forward : ((X , Y) -> Y) -> Y -> List(X ) -> Y;
exists : (X -> Bool) -> List(X ) -> Bool;
all : (X -> Bool) -> List(X ) -> Bool;
from_fn : (Int , (Int -> X)) -> List(X );
compare_sequences : ((X , X) -> Order) -> (List(X ) , List(X )) -> Order;
in : (''a , List(''a )) -> Bool;
drop : (''a , List(''a )) -> List(''a );
};


