Batteries user guide : Batteries.ParserCo

`sig
type 'a state = 'a BatParserCo.state = Eof | State of 'a
type 'a report =
'a BatParserCo.report =
Report of ('a state * string * 'a report) list
module Source :
sig
type ('a, 'b) t = ('a, 'b) BatParserCo.Source.t
val get_state : ('a, 'b) t -> 'b state
val set_full_state : ('a, 'b) t -> 'c -> ('a -> 'c -> 'c) -> ('a, 'c) t
val of_enum : 'a BatEnum.t -> 'b -> ('a -> 'b -> 'b) -> ('a, 'b) t
end
type ('a, 'b, 'c) t = ('a, 'b, 'c) BatParserCo.t
val eof : ('a, unit, 'b) t
val either : ('a, 'b, 'c) t list -> ('a, 'b, 'c) t
val ( <|> ) : ('a, 'b, 'c) t -> ('a, 'b, 'c) t -> ('a, 'b, 'c) t
val maybe : ('a, 'b, 'c) t -> ('a, 'b option, 'c) t
val ( ~? ) : ('a, 'b, 'c) t -> ('a, 'b option, 'c) t
val bind : ('a, 'b, 'c) t -> ('b -> ('a, 'd, 'c) t) -> ('a, 'd, 'c) t
val ( >>= ) : ('a, 'b, 'c) t -> ('b -> ('a, 'd, 'c) t) -> ('a, 'd, 'c) t
val ( >>> ) : ('a, 'b, 'c) t -> ('a, 'd, 'c) t -> ('a, 'd, 'c) t
val cons : ('a, 'b, 'c) t -> ('a, 'b list, 'c) t -> ('a, 'b list, 'c) t
val ( >:: ) : ('a, 'b, 'c) t -> ('a, 'b list, 'c) t -> ('a, 'b list, 'c) t
val label : string -> ('a, 'b, 'c) t -> ('a, 'b, 'c) t
val state : ('a, 'b state, 'b) t
val any : ('a, 'a, 'b) t
val return : 'b -> ('a, 'b, 'c) t
val satisfy : ('a -> bool) -> ('a, 'a, 'b) t
val filter : ('b -> bool) -> ('a, 'b, 'c) t -> ('a, 'b, 'c) t
val suspend :
('a, 'b, 'c) t ->
('a, unit -> ('b, 'c report) BatPervasives.result, 'c) t
val run :
('a, 'b, 'c) t ->
('a, 'c) Source.t -> ('b, 'c report) BatPervasives.result
val fail : ('a, 'b, 'c) t
val fatal : ('a, 'b, 'c) t
val lookahead : ('a, 'b, 'c) t -> ('a, 'b option, 'c) t
val exactly : 'a -> ('a, 'a, 'c) t
val one_of : 'a list -> ('a, 'a, 'c) t
val none_of : 'a list -> ('a, 'a, 'c) t
val range : 'a -> 'a -> ('a, 'a, 'c) t
val zero_plus :
?sep:('a, 'd, 'c) t -> ('a, 'b, 'c) t -> ('a, 'b list, 'c) t
val ignore_zero_plus :
?sep:('a, 'b, 'c) t -> ('a, 'd, 'c) t -> ('a, unit, 'c) t
val ( ~* ) : ('a, 'b, 'c) t -> ('a, 'b list, 'c) t
val one_plus : ?sep:('a, 'd, 'c) t -> ('a, 'b, 'c) t -> ('a, 'b list, 'c) t
val ignore_one_plus :
?sep:('a, 'b, 'c) t -> ('a, 'd, 'c) t -> ('a, unit, 'c) t
val ( ~+ ) : ('a, 'b, 'c) t -> ('a, 'b list, 'c) t
val times : int -> ('a, 'b, 'c) t -> ('a, 'b list, 'c) t
val ( ^^ ) : ('a, 'b, 'c) t -> int -> ('a, 'b list, 'c) t
val must : ('a, 'b, 'c) t -> ('a, 'b, 'c) t
val should : ('a, 'b, 'c) t -> ('a, 'b, 'c) t
val post_map : ('b -> 'c) -> ('a, 'b, 'd) t -> ('a, 'c, 'd) t
val source_map : ('a, 'b, 'c) t -> ('a, 'c) Source.t -> ('b, 'c) Source.t
val scan : ('a, 'b, 'c) t -> ('a, 'a list, 'c) t
val sat : ('a -> bool) -> ('a, unit, 'b) t
val debug_mode : bool ref
module Infix :
sig
val ( <|> ) : ('a, 'b, 'c) t -> ('a, 'b, 'c) t -> ('a, 'b, 'c) t
val ( ~? ) : ('a, 'b, 'c) t -> ('a, 'b option, 'c) t
val ( >>= ) :
('a, 'b, 'c) t -> ('b -> ('a, 'd, 'c) t) -> ('a, 'd, 'c) t
val ( >>> ) : ('a, 'b, 'c) t -> ('a, 'd, 'c) t -> ('a, 'd, 'c) t
val ( >:: ) :
('a, 'b, 'c) t -> ('a, 'b list, 'c) t -> ('a, 'b list, 'c) t
val ( ~* ) : ('a, 'b, 'c) t -> ('a, 'b list, 'c) t
val ( ~+ ) : ('a, 'b, 'c) t -> ('a, 'b list, 'c) t
val ( ^^ ) : ('a, 'b, 'c) t -> int -> ('a, 'b list, 'c) t
end
end`