BiLesserEq = "<="; BiGreaterEq = ">="; BiUnEqual = "!=";
BiAnd = "&&"; BiOr = "||"; BiCons = ":"
+instance toString Op1 where
+ toString UnNegation = "!"
+ toString UnMinus = "-"
+
instance print Expr where
print (VarExpr _ vd) = print vd
print (Op2Expr _ e1 o e2) = ["(":print e1] ++
derive gEq Op2
instance == Op2 where (==) o1 o2 = gEq{|*|} o1 o2
+
+instance zero Pos where
+ zero = {line=0, col=0}
+
+derive gEq Op1
+instance == Op1 where (==) o1 o2 = gEq{|*|} o1 o2
+instance < Op2 where (<) o1 o2 = toString o1 < toString o2
+instance < Op1 where (<) o1 o2 = toString o1 < toString o2