Benny <[EMAIL PROTECTED]> writes:

> 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
_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to