(+) 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
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to