Fwd: [Haskell-cafe] Class

Slavomir Kaslev slavomir.kaslev at gmail.com
Thu Nov 2 09:47:37 EST 2006


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


More information about the Haskell-Cafe mailing list