sig   type 'a state = Eof | State of 'a   type 'a report =       Report of ('BatParserCo.state * string * 'BatParserCo.report) list   module Source :     sig       type ('a, 'b) t       val get_state : ('a, 'b) BatParserCo.Source.t -> 'BatParserCo.state       val set_full_state :         ('a, 'b) BatParserCo.Source.t ->         '-> ('-> '-> 'c) -> ('a, 'c) BatParserCo.Source.t       val of_enum :         'BatEnum.t ->         '-> ('-> '-> '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 ->     ('-> ('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, '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, 'BatParserCo.state, 'b) BatParserCo.t   val any : ('a, 'a, 'b) BatParserCo.t   val return : '-> ('a, 'b, 'c) BatParserCo.t   val satisfy : ('-> bool) -> ('a, 'a, 'b) BatParserCo.t   val filter :     ('-> bool) -> ('a, 'b, 'c) BatParserCo.t -> ('a, 'b, 'c) BatParserCo.t   val suspend :     ('a, 'b, 'c) BatParserCo.t ->     ('a, unit -> ('b, 'BatParserCo.report) BatPervasives.result, 'c)     BatParserCo.t   val run :     ('a, 'b, 'c) BatParserCo.t ->     ('a, 'c) BatParserCo.Source.t ->     ('b, '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, '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, '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 :     ('-> '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 : ('-> 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 ->         ('-> ('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