sig
  type position =
    Stdlib.Lexing.position = {
    pos_fname : string;
    pos_lnum : int;
    pos_bol : int;
    pos_cnum : int;
  }
  val dummy_pos : BatLexing.position
  type lexbuf =
    Stdlib.Lexing.lexbuf = {
    refill_buff : BatLexing.lexbuf -> unit;
    mutable lex_buffer : Stdlib.Bytes.t;
    mutable lex_buffer_len : int;
    mutable lex_abs_pos : int;
    mutable lex_start_pos : int;
    mutable lex_curr_pos : int;
    mutable lex_last_pos : int;
    mutable lex_last_action : int;
    mutable lex_eof_reached : bool;
    mutable lex_mem : int array;
    mutable lex_start_p : BatLexing.position;
    mutable lex_curr_p : BatLexing.position;
  }
  val from_string : ?with_positions:bool -> string -> BatLexing.lexbuf
  val from_function :
    ?with_positions:bool -> (bytes -> int -> int) -> BatLexing.lexbuf
  val set_position : BatLexing.lexbuf -> BatLexing.position -> unit
  val set_filename : BatLexing.lexbuf -> string -> unit
  val with_positions : BatLexing.lexbuf -> bool
  val lexeme : BatLexing.lexbuf -> string
  val lexeme_char : BatLexing.lexbuf -> int -> char
  val lexeme_start : BatLexing.lexbuf -> int
  val lexeme_end : BatLexing.lexbuf -> int
  val lexeme_start_p : BatLexing.lexbuf -> BatLexing.position
  val lexeme_end_p : BatLexing.lexbuf -> BatLexing.position
  val new_line : BatLexing.lexbuf -> unit
  val flush_input : BatLexing.lexbuf -> unit
  val sub_lexeme : BatLexing.lexbuf -> int -> int -> string
  val sub_lexeme_opt : BatLexing.lexbuf -> int -> int -> string option
  val sub_lexeme_char : BatLexing.lexbuf -> int -> char
  val sub_lexeme_char_opt : BatLexing.lexbuf -> int -> char option
  type lex_tables =
    Stdlib.Lexing.lex_tables = {
    lex_base : string;
    lex_backtrk : string;
    lex_default : string;
    lex_trans : string;
    lex_check : string;
    lex_base_code : string;
    lex_backtrk_code : string;
    lex_default_code : string;
    lex_trans_code : string;
    lex_check_code : string;
    lex_code : string;
  }
  val engine : BatLexing.lex_tables -> int -> BatLexing.lexbuf -> int
  val new_engine : BatLexing.lex_tables -> int -> BatLexing.lexbuf -> int
  val from_channel : BatIO.input -> BatLexing.lexbuf
end