The standard library Parser_Combinator api defines access to parser combinators over readers.
The Parser_Combinator api is implemented by the parser_combinator package.
The Parser_Combinator api source code is in src/lib/src/parser-combinator.api.
The above information is manually maintained and may contain errors.
api { Parser (X, Y) = number_string::Reader((Char, Y)) -> number_string::Reader((X, Y)); result : X -> Parser((X, Y)); failure : Parser((X, Y)); wrap : (Parser((X, Z)) , (X -> Y)) -> Parser((Y, Z)); seq : (Parser((X, Z)) , Parser((Y, Z))) -> Parser(((X , Y), Z)); seq_with : ((X , Y) -> Z) -> (Parser((X, A)) , Parser((Y, A))) -> Parser((Z, A)); bind : (Parser((X, Z)) , (X -> Parser((Y, Z)))) -> Parser((Y, Z)); eat_char : (Char -> Bool) -> Parser((Char, X)); char : Char -> Parser((Char, X)); string : String -> Parser((String, X)); skip_before : (Char -> Bool) -> Parser((X, Y)) -> Parser((X, Y)); or_op : (Parser((X, Y)) , Parser((X, Y))) -> Parser((X, Y)); or' : List(Parser((X, Y)) ) -> Parser((X, Y)); zero_or_more : Parser((X, Y)) -> Parser((List(X ), Y)); one_or_more : Parser((X, Y)) -> Parser((List(X ), Y)); option : Parser((X, Y)) -> Parser((Null_Or(X ), Y)); join : Parser((Null_Or(X ), Y)) -> Parser((X, Y)); token : (Char -> Bool) -> Parser((String, X));};