Little by little, I think I am getting closer.

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

Is just declaration, not definition. It doesn't define anything, even
though it has default implementations for toString and size one still
needs to define instance of it. Right?

As Sebastian Sylvan proposed, I probably need something like this:

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

instance Show a => Visible a where
   toString = show
   size = length . show

But it seems ghc doesn't like instance definitions like 'instance Show
a => Visible a where ...'. Why?

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

Reply via email to