%token LEFT_PAR RIGHT_PAR %token VAR %token DOT %token LAMBDA %start termc %% termc: | x = VAR { Lambda.to_var x } | LAMBDA ; l = nonempty_list(VAR) ; DOT; t = termc { Lambda.to_lambda l t } | LEFT_PAR ; t = termc ; u = termc ; RIGHT_PAR { Lambda.to_app t u } | LEFT_PAR ; t = termc ; RIGHT_PAR { t }