type token =
  | EOF
  | MODULE
  | FUN
  | VER
  | END
  | Lt
  | Gt
  | Eq
  | Cm
  | Lp
  | Rp
  | Lbr
  | Rbr
  | Qu
  | St
  | Pl
  | Co
  | Pt
  | Ha
  | Hy
  | INT
  | INTC
  | INTV
  | STR
  | STRC
  | STRV
  | RES
  | SPECIAL
  | INTEGER of (int)
  | IDENT of (string)
  | STRING of (string)

val parse :
  (Lexing.lexbuf  -> token) -> Lexing.lexbuf -> unit
