[Haskell-cafe] classes question
Joe Fredette
jfredett at gmail.com
Mon Nov 9 13:48:22 EST 2009
(+) is a name that is already taken by the Num typeclass, you're
trying to overload it with a different class. It's equivalent to doing:
foo :: Int
foo = 1
foo :: String
foo = "abc"
this would cause an (obvious) namespace collision. If you want to
redefine (+), you'll have to import a qualified prelude, by using the
NoImplicitPrelude
pragma and `import qualified Prelude`.
A better alternative is to use a different name, `+`, `++` are both
taken (for normal addition and list concatenation, resp.).
/Joe
On Nov 9, 2009, at 1:44 PM, Paul Tokarev wrote:
>
> Hi.
>
> I am using Hugs 98
> I have that piece of code:
>
> class PlusTimes a where
> plus :: a -> a -> a
>
> instance PlusTimes Int where
> plus x y = x + y
>
> when I run : "plus 2 3" I get this error:
> ERROR - Unresolved overloading
> *** Type : (Num a, PlusTimes a) => a
> *** Expression : plus 2 3
>
> What am I doing wrong?
> Thanks.
>
> --
> View this message in context: http://old.nabble.com/classes-question-tp26271257p26271257.html
> Sent from the Haskell - Haskell-Cafe mailing list archive at
> Nabble.com.
>
> _______________________________________________
> 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