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