:: ParserOutput :== Either String AST
:: AST = AST [VarDecl] [FunDecl]
-:: VarDecl = VarDecl String Type Expr
+:: VarDecl = VarDecl Type String Expr
:: Type
- = TupleType Type Type
+ = TupleType (Type, Type)
| ListType Type
| IdType String
| IntType
| BoolExpr Bool
| FunExpr FunCall
| EmptyListExpr
- | TupleExpr Expr Expr
+ | TupleExpr (Expr, Expr)
:: VarDef = VarDef String [FieldSelector]
:: FieldSelector = FieldHd | FieldTl | FieldFst | FieldSnd
:: Op1 = UnNegation | UnMinus