4 type TypeIdent = String
6 data Declaration = TypeDec TypeIdent Type | VarDec VarIdent TypeIdent Expr | FunDec VarIdent [TypedVar] TypeIdent Expr
10 = TypedVar VarIdent TypeIdent
22 | Apply VarIdent [Expr]
24 | RecordVal TypeIdent [AssignField]
25 | ArrayVal TypeIdent Expr Expr
29 | For VarIdent Expr Expr Expr
31 | Let [Declaration] [Expr]
42 = AssignField VarIdent Expr