[Haskell-cafe] How to define an operation in terms of itself (but
of different type)?
hoknamahn at gmail.com
Fri Jan 23 17:15:50 EST 2009
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 +
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?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe