sig
  module type Definition =
    sig
      val comment_delimiters : (string * string) option
      val line_comment_start : string option
      val nested_comments : bool
      val ident_start : (char, char, BatCharParser.position) BatParserCo.t
      val ident_letter : (char, char, BatCharParser.position) BatParserCo.t
      val op_start : (char, char, BatCharParser.position) BatParserCo.t
      val op_letter : (char, char, BatCharParser.position) BatParserCo.t
      val reserved_names : string list
      val case_sensitive : bool
    end
  module Library : sig module OCaml : Definition module C : Definition end
  module Make :
    functor (M : Definition->
      sig
        val feed :
          (char, BatCharParser.position) BatParserCo.Source.t ->
          (BatGenlex.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
end