[Haskell-cafe] How to define an operation in terms of itself (but
of different type)?
Miguel Mitrofanov
miguelimo38 at yandex.ru
Fri Jan 23 17:30:39 EST 2009
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 at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list