haskell-cafe@haskell.org
[Top] [All Lists]

Re: [Haskell-cafe] How to define an operation in terms of itself (but of

Subject: Re: [Haskell-cafe] How to define an operation in terms of itself (but of different type)?
From: Miguel Mitrofanov
Date: Sat, 24 Jan 2009 01:30:39 +0300
Seems like all telepath are on vacation, so you would have to show the code.

On 24 Jan 2009, at 01:15, Olex P wrote:

Hello Haskellers!
It's probably a simple question but I can't find a proper solution...
Suppose we have a class Vector which overloads (+) operation. I'd like to represent a Matrix data type as a set of vectors:

data Matrix3 = M3 !Vector3 !Vector3 !Vector3

In this case (+) for matrices could be implemented as:

(M3 r11 r12 r13) + (M3 r21 r22 r23) = M3 (r11 + r21) (r12 + r22) (r13 + r23)

But GHC says about ambiguous occurrence. I don't understand why because it's should be pretty clear that rows are vectors and (+) has to be vector type as well. I could use Vector.+ instead but it doesn't look good.
Probably I'm missing something. Any ideas?

Cheers,
Oleksandr.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@xxxxxxxxxxx
http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@xxxxxxxxxxx
http://www.haskell.org/mailman/listinfo/haskell-cafe

<Prev in Thread] Current Thread [Next in Thread>