Batteries user guide : BatParserCo

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