Batteries user guide : Batteries.CharParser

`sig
type position = BatCharParser.position = { offset : int; line : int; }
val advance : char -> position -> position
val source_of_string : string -> (char, position) BatParserCo.Source.t
val source_of_enum :
char BatEnum.t -> (char, position) BatParserCo.Source.t
val parse :
(char, 'a, position) BatParserCo.t ->
string -> ('a, position BatParserCo.report) BatPervasives.result
val char : char -> (char, char, position) BatParserCo.t
val none_of : char list -> (char, char, position) BatParserCo.t
val not_char : char -> (char, char, position) BatParserCo.t
val string : string -> (char, string, position) BatParserCo.t
val case_char : char -> (char, char, position) BatParserCo.t
val case_string : string -> (char, string, position) BatParserCo.t
val newline : (char, char, position) BatParserCo.t
val whitespace : (char, char, position) BatParserCo.t
val uppercase : (char, char, position) BatParserCo.t
val lowercase : (char, char, position) BatParserCo.t
val letter : (char, char, position) BatParserCo.t
val uppercase_latin1 : (char, char, position) BatParserCo.t
val lowercase_latin1 : (char, char, position) BatParserCo.t
val latin1 : (char, char, position) BatParserCo.t
val digit : (char, char, position) BatParserCo.t
val hex : (char, char, position) BatParserCo.t
end`