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