--- /dev/null
+import "Prelude"\r
+\r
+data E = E String\r
+\r
+instance Additive E where\r
+ zero = E "0"\r
+ E a + E b = E ("(" + a + "+" + b + ")")\r
+ \r
+instance Ring E where\r
+ one = E "1"\r
+ neg (E a) = E ("(-" + a + ")")\r
+ E a - E b = E ("(" + a + "-" + b + ")")\r
+ E a * E b = E ("(" + a + "*" + b + ")") \r
+ fromInteger x = E (show x)\r
+\r
+eToString (E a) = a\r
+\r
+a = E "a"\r
+b = E "b"\r
+c = E "c"\r
+d = E "d"\r
+\r
+main = eToString (-a + b + (-c*d))\r
+--\r
+(((-a)+b)+(-(c*d)))
\ No newline at end of file