| Eq_e of exp * exp | Neq_e of exp * exp
| Gt_e of exp * exp | Gte_e of exp * exp
| Lt_e of exp * exp | Lte_e of exp * exp
- | Cons_e of exp * exp
+ | Cons_e of exp * exp | Compose_e of exp * exp
| Record_e of bool * (ident * exp) list
| RecordUpd_e of exp * (ident * exp) list
| Proj_e of ident | App_e of exp * exp
| Case_e of exp * (pat * exp) list
| Fn_e of (pat * exp) list
| Raise_e of exp
+ | Let_e of block * exp
+ | If_e of exp * exp * exp
and exp = EXP of exp' withext
and blockItem' =
| Open_i of path list (* imports to top level *)
| Ifthenelse_i of exp * block * block option (* if statement *)
| Case_i of exp * (pat * block) list (* case statement *)
- | Foreach_i of ident * exp * block (* foreach statement with list *)
+ | Foreach_i of pat * exp * block (* foreach statement with list *)
| For_i of ident * exp * exp * block (* foreach statement with integer range *)
| TryCatch_i of block * (pat * block) list (* try...catch exception handlers w/ pattern matching *)
and blockItem = BITEM of blockItem' withext