sig
  type lexbuf
  exception InvalidCodepoint of int
  exception MalFormed
  val create :
    ?bytes_per_char:(Stdlib.Uchar.t -> int) ->
    (Stdlib.Uchar.t array -> int -> int -> int) -> Sedlexing.lexbuf
  val set_position :
    ?bytes_position:Stdlib.Lexing.position ->
    Sedlexing.lexbuf -> Stdlib.Lexing.position -> unit
  val set_filename : Sedlexing.lexbuf -> string -> unit
  val from_gen :
    ?bytes_per_char:(Stdlib.Uchar.t -> int) ->
    Stdlib.Uchar.t Gen.t -> Sedlexing.lexbuf
  val from_int_array :
    ?bytes_per_char:(Stdlib.Uchar.t -> int) -> int array -> Sedlexing.lexbuf
  val from_uchar_array :
    ?bytes_per_char:(Stdlib.Uchar.t -> int) ->
    Stdlib.Uchar.t array -> Sedlexing.lexbuf
  val lexeme_start : Sedlexing.lexbuf -> int
  val lexeme_bytes_start : Sedlexing.lexbuf -> int
  val lexeme_end : Sedlexing.lexbuf -> int
  val lexeme_bytes_end : Sedlexing.lexbuf -> int
  val loc : Sedlexing.lexbuf -> int * int
  val bytes_loc : Sedlexing.lexbuf -> int * int
  val lexeme_length : Sedlexing.lexbuf -> int
  val lexeme_bytes_length : Sedlexing.lexbuf -> int
  val lexing_positions :
    Sedlexing.lexbuf -> Stdlib.Lexing.position * Stdlib.Lexing.position
  val lexing_position_start : Sedlexing.lexbuf -> Stdlib.Lexing.position
  val lexing_position_curr : Sedlexing.lexbuf -> Stdlib.Lexing.position
  val lexing_bytes_positions :
    Sedlexing.lexbuf -> Stdlib.Lexing.position * Stdlib.Lexing.position
  val lexing_bytes_position_start :
    Sedlexing.lexbuf -> Stdlib.Lexing.position
  val lexing_bytes_position_curr : Sedlexing.lexbuf -> Stdlib.Lexing.position
  val new_line : Sedlexing.lexbuf -> unit
  val lexeme : Sedlexing.lexbuf -> Stdlib.Uchar.t array
  val lexeme_char : Sedlexing.lexbuf -> int -> Stdlib.Uchar.t
  val sub_lexeme : Sedlexing.lexbuf -> int -> int -> Stdlib.Uchar.t array
  val rollback : Sedlexing.lexbuf -> unit
  val start : Sedlexing.lexbuf -> unit
  val next : Sedlexing.lexbuf -> Stdlib.Uchar.t option
  val __private__next_int : Sedlexing.lexbuf -> int
  val mark : Sedlexing.lexbuf -> int -> unit
  val backtrack : Sedlexing.lexbuf -> int
  val with_tokenizer :
    (Sedlexing.lexbuf -> 'token) ->
    Sedlexing.lexbuf ->
    unit -> 'token * Stdlib.Lexing.position * Stdlib.Lexing.position
  module Latin1 :
    sig
      val from_gen : char Gen.t -> Sedlexing.lexbuf
      val from_channel : Stdlib.in_channel -> Sedlexing.lexbuf
      val from_string : string -> Sedlexing.lexbuf
      val lexeme : Sedlexing.lexbuf -> string
      val sub_lexeme : Sedlexing.lexbuf -> int -> int -> string
      val lexeme_char : Sedlexing.lexbuf -> int -> char
    end
  module Utf8 :
    sig
      val from_gen : char Gen.t -> Sedlexing.lexbuf
      val from_channel : Stdlib.in_channel -> Sedlexing.lexbuf
      val from_string : string -> Sedlexing.lexbuf
      val lexeme : Sedlexing.lexbuf -> string
      val sub_lexeme : Sedlexing.lexbuf -> int -> int -> string
    end
  module Utf16 :
    sig
      type byte_order = Little_endian | Big_endian
      val from_gen :
        char Gen.t -> Sedlexing.Utf16.byte_order option -> Sedlexing.lexbuf
      val from_channel :
        Stdlib.in_channel ->
        Sedlexing.Utf16.byte_order option -> Sedlexing.lexbuf
      val from_string :
        string -> Sedlexing.Utf16.byte_order option -> Sedlexing.lexbuf
      val lexeme :
        Sedlexing.lexbuf -> Sedlexing.Utf16.byte_order -> bool -> string
      val sub_lexeme :
        Sedlexing.lexbuf ->
        int -> int -> Sedlexing.Utf16.byte_order -> bool -> string
    end
end