sig
  type token =
      AMPERAMPER
    | AMPERSAND
    | AND
    | AS
    | ASSERT
    | BACKQUOTE
    | BANG
    | BAR
    | BARBAR
    | BARRBRACKET
    | BEGIN
    | CHAR of char
    | CLASS
    | COLON
    | COLONCOLON
    | COLONEQUAL
    | COLONGREATER
    | COMMA
    | CONSTRAINT
    | DO
    | DONE
    | DOT
    | DOTDOT
    | DOWNTO
    | ELSE
    | END
    | EOF
    | EQUAL
    | EXCEPTION
    | EXTERNAL
    | FALSE
    | FLOAT of (string * char option)
    | FOR
    | FUN
    | FUNCTION
    | FUNCTOR
    | GREATER
    | GREATERRBRACE
    | GREATERRBRACKET
    | IF
    | IN
    | INCLUDE
    | INFIXOP0 of string
    | INFIXOP1 of string
    | INFIXOP2 of string
    | INFIXOP3 of string
    | INFIXOP4 of string
    | INHERIT
    | INITIALIZER
    | INT of (string * char option)
    | LABEL of string
    | LAZY
    | LBRACE
    | LBRACELESS
    | LBRACKET
    | LBRACKETBAR
    | LBRACKETLESS
    | LBRACKETGREATER
    | LBRACKETPERCENT
    | LBRACKETPERCENTPERCENT
    | LESS
    | LESSMINUS
    | LET
    | LIDENT of string
    | LPAREN
    | LBRACKETAT
    | LBRACKETATAT
    | LBRACKETATATAT
    | MATCH
    | METHOD
    | MINUS
    | MINUSDOT
    | MINUSGREATER
    | MODULE
    | MUTABLE
    | NEW
    | NONREC
    | OBJECT
    | OF
    | OPEN
    | OPTLABEL of string
    | OR
    | PERCENT
    | PLUS
    | PLUSDOT
    | PLUSEQ
    | PREFIXOP of string
    | PRIVATE
    | QUESTION
    | QUOTE
    | RBRACE
    | RBRACKET
    | REC
    | RPAREN
    | SEMI
    | SEMISEMI
    | HASH
    | HASHOP of string
    | SIG
    | STAR
    | STRING of (string * string option)
    | STRUCT
    | THEN
    | TILDE
    | TO
    | TRUE
    | TRY
    | TYPE
    | UIDENT of string
    | UNDERSCORE
    | VAL
    | VIRTUAL
    | WHEN
    | WHILE
    | WITH
    | COMMENT of (string * Location.t)
    | DOCSTRING of Docstrings.docstring
    | EOL
  val implementation :
    (Lexing.lexbuf -> Parser.token) -> Lexing.lexbuf -> Parsetree.structure
  val interface :
    (Lexing.lexbuf -> Parser.token) -> Lexing.lexbuf -> Parsetree.signature
  val toplevel_phrase :
    (Lexing.lexbuf -> Parser.token) ->
    Lexing.lexbuf -> Parsetree.toplevel_phrase
  val use_file :
    (Lexing.lexbuf -> Parser.token) ->
    Lexing.lexbuf -> Parsetree.toplevel_phrase list
  val parse_core_type :
    (Lexing.lexbuf -> Parser.token) -> Lexing.lexbuf -> Parsetree.core_type
  val parse_expression :
    (Lexing.lexbuf -> Parser.token) -> Lexing.lexbuf -> Parsetree.expression
  val parse_pattern :
    (Lexing.lexbuf -> Parser.token) -> Lexing.lexbuf -> Parsetree.pattern
end