PROG ::= FUNCALL* EXPR ::= LITERAL | FUNCALL | VARDECL | LAMBDA LAMBDA ::= opar rarrow opar PARAMS cpar BODY cpar PARAMS ::= ident* BODY ::= expr* VARDECL ::= opar decl ident EXPR cpar FUNCALL ::= opar ident EXPR* cpar LITERAL ::= int | ident