`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`