MODULE ::= EXPR* EXPR ::= bool | int | ident | float | string | VARDECL | FUNDECL | FUNCALL | LAMBDA | BLOCK | ARRAY | IMPORT | SHORT_IMPORT | NS VARDECL ::= opar decl ident EXPR cpar FUNDECL ::= opar decl opar ident* cpar BODY cpar FUNCALL ::= opar EXPR EXPR* cpar LAMBDA ::= opar lambda opar PARAMS cpar BODY cpar PARAMS ::= ident* BODY ::= EXPR* BLOCK ::= opar colon EXPR* cpar ARRAY ::= osquare EXPR* csquare IMPORT ::= opar import string cpar SHORT_IMPORT ::= opar decl import ident string cpar SHORTER_IMPORT ::= opar decl import ident cpar NS ::= ident ns ident