Help need "Cannot use type synonym in instance head"

type Poly = [Float] addPoly::Poly->Poly->Poly addPoly x y = zipWith (+) x y instance (Float a) => Num (Poly a) where (+) = addPoly I got the error message "Cannot use type synonym in instance head" when I was trying to compile the codes above. Can anyone tell me why and how to solve it? Cheers Benny

Benny
type Poly = [Float]
addPoly::Poly->Poly->Poly addPoly x y = zipWith (+) x y
instance (Float a) => Num (Poly a) where (+) = addPoly
I got the error message "Cannot use type synonym in instance head" when I was trying to compile the codes above. Can anyone tell me why and how to solve it?
You can either substitute in the type synonym:
instance Num [Float] where (+) = addPoly
Or change Poly to newtype:
newtype Poly = Poly [Float]
addPoly::Poly->Poly->Poly addPoly (Poly x) (Poly y) = Poly (zipWith (+) x y)
HTH
Cheers
Benny
Jon Cast
participants (2)
-
Benny
-
Jon Cast