sig
  type token =
      WITH
    | WILDCARD
    | WF_ATTRIBUTE
    | VERTICAL_BAR
    | VAL
    | UPPER_WORD of string
    | TYPE
    | THEN
    | SUBSET
    | SPEC
    | SEMI_COLON
    | RIGHT_PAREN
    | RIGHT_BRACKET
    | REC
    | QUOTIENT
    | PROP
    | PRED
    | PI
    | PARTIAL_QUOTIENT
    | META_VAR
    | MATCH
    | LOWER_WORD of string
    | LOGIC_TRUE
    | LOGIC_OR
    | LOGIC_NOT
    | LOGIC_NEQ
    | LOGIC_IMPLY
    | LOGIC_FORALL
    | LOGIC_FALSE
    | LOGIC_EXISTS
    | LOGIC_EQ
    | LOGIC_AND
    | LET
    | LEFT_PAREN
    | LEFT_BRACKET
    | INTEGER of string
    | INCLUDE
    | IN
    | IF
    | GOAL
    | FUN
    | FILEPATH of string
    | EQDEF
    | EOI
    | END
    | ELSE
    | DOT
    | DATA
    | COPY
    | COPRED
    | CONCRETE
    | COLON
    | CODATA
    | AXIOM
    | AT
    | ASSERTING
    | ARROW
    | AND
    | ABSTRACT
  exception Error
  val parse_ty :
    (Lexing.lexbuf -> Parser.token) ->
    Lexing.lexbuf -> Nunchaku_core.UntypedAST.ty
  val parse_term :
    (Lexing.lexbuf -> Parser.token) ->
    Lexing.lexbuf -> Nunchaku_core.UntypedAST.term
  val parse_statement_list :
    (Lexing.lexbuf -> Parser.token) ->
    Lexing.lexbuf -> Nunchaku_core.UntypedAST.statement list
  val parse_statement :
    (Lexing.lexbuf -> Parser.token) ->
    Lexing.lexbuf -> Nunchaku_core.UntypedAST.statement
end