+import "Prelude" hiding (zero, one)\r
+\r
+class MyAdditive a where\r
+ zero :: a\r
+ \r
+class (MyAdditive a) => MyRing a where\r
+ one :: a\r
+\r
+instance MyAdditive Integer where\r
+ zero = 0\r
+\r
+instance MyRing Integer where\r
+ one = 1\r
+ \r
+data Poly a = Poly [a]\r
+\r
+instance (MyAdditive a) => MyAdditive (Poly a) where\r
+ zero = Poly []\r
+\r
+instance (MyRing a) => MyRing (Poly a) where\r
+ one = Poly [one]\r
+ \r
+main :: Poly Integer\r
+main = one\r
+--\r
+[1]
\ No newline at end of file