Your problem seems to be related to the Num class, and the fact that the compiler can't figure out what '5' is -- see pp 223/224 of Simon Thompson's book.

The code below offers two possible resolutions, one commented:
[[
class Show a => Visible a where
  toString :: a -> String
  size     :: a -> Int

  toString x = show x
  size x = 1

{-
instance Visible Int where
  toString x    = show x
  size _        = 1
-}

instance Num a => Visible a where
  toString x    = show x
  size _        = 1

{-
t1 - toString (5::Int)
-}

t1 = toString 5
]]

#g
--

At 23:58 27/06/04 -0400, kasager wrote:
Hi,  in my last posting i asked for help with exercise 12.5 however, i forgot
to give my code... here is my code and the error messege that hugs gives when
i try to run it (it compiles fine, however when i test it, it gives an
error)...

Code:

class Show a => Visible a where
  toString :: a -> String
  size     :: a -> Int

  toString x = show x
  size x = 1

instance Visible Int where
  toString x    = show x
  size _        = 1

-- i have tried writing this without the show function, and the same error
messege still is given... i also have other instances in the class, which work
fine and should not effect this issue...


Error:

Prelude> :l "C:\\WorkArea\\Haskell\\homework\\ch12_5.hs"
Main> toString 5
ERROR - Unresolved overloading
*** Type       : (Num a, Visible a) => [Char]
*** Expression : toString 5


If you can help in any way or give any suggestions its greatly appreciated... once again thanks much.

------------ Graham Klyne For email: http://www.ninebynine.org/#Contact

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

Reply via email to