On 11/2/06, Sebastian Sylvan <[EMAIL PROTECTED]> wrote:
On 11/2/06, Slavomir Kaslev <[EMAIL PROTECTED]> wrote:
> 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?
This is not Haskell98 since instance declarations of this form could
cause the type checker to go into an infinite loop. This particular
one is okay, though, but you have to start ghc with
-fallow-undecidable-instances and -fglasgow-exts I'm afraid.
--
Sebastian Sylvan
+46(0)736-818655
UIN: 44640862
Thanks, Sebastian. That was helpful. Are there any papers on the subject?
--
Slavomir Kaslev
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe