[Haskell-cafe] Wondering if this could be done.

Gregory Crosswhite gcross at phys.washington.edu
Mon Nov 22 02:13:41 EST 2010


On 11/21/10 10:48 PM, Magicloud Magiclouds wrote:
> Hi,
>    For example, I have a data A defined. Then I want to add (+) and (-)
> operators to it, as a sugar (compared to addA/minusA). But * or other
> stuff defined in class Num is meanless to A. So I just do:
> (+) :: A ->  A ->  A
> (+) a b =
>    A (elem1 a + elem1 b) (elem2 a + elem2 b) -- I got errors here, for
> the (+) is ambiguous.
>
>    So, just wondering, does this way work in Haskell?

One solution to this problem is to use slightly modified operators, such 
as ".+." and ".-.", or anything else that crosses your fancy and is 
accepted by the compiler.

Cheers,
Greg


More information about the Haskell-Cafe mailing list