functor (M : Definition->
  sig
    val feed :
      (char, BatCharParser.position) BatParserCo.Source.t ->
      (Genlex.token, BatCharParser.position) BatParserCo.Source.t
    val start : (char, unit, BatCharParser.position) BatParserCo.t
    val ident : (char, string, BatCharParser.position) BatParserCo.t
    val kwd : (char, string, BatCharParser.position) BatParserCo.t
    val identifier :
      string -> (char, unit, BatCharParser.position) BatParserCo.t
    val keyword :
      string -> (char, unit, BatCharParser.position) BatParserCo.t
    val char_literal : (char, char, BatCharParser.position) BatParserCo.t
    val string_literal : (char, string, BatCharParser.position) BatParserCo.t
    val integer : (char, int, BatCharParser.position) BatParserCo.t
    val float : (char, float, BatCharParser.position) BatParserCo.t
    val number :
      (char, [ `Float of float | `Integer of int ], BatCharParser.position)
      BatParserCo.t
    val char : char -> (char, char, BatCharParser.position) BatParserCo.t
    val string :
      string -> (char, string, BatCharParser.position) BatParserCo.t
    val line_comment : (char, unit, BatCharParser.position) BatParserCo.t
    val multiline_comment :
      (char, unit, BatCharParser.position) BatParserCo.t
    val comment : (char, unit, BatCharParser.position) BatParserCo.t
    val whitespaces : (char, unit, BatCharParser.position) BatParserCo.t
  end