higher-kind deriving ... or not
Wed, 27 Feb 2002 08:59:26 +1300
C T McBride writes:
| A little more tinkering, and it looks like it might be
| show :: Show (f (Wonky f)) => Wonky f -> String
| Is this really the type of show?
That looks correct to me.
| If so, no wonder there's a problem.
Yes, there's a vicious circle in context reduction, between Wonky Copy
and Copy (Wonky Copy).
| I don't want to start an argument about how to solve this problem. I
| do want to suggest that, for the time being, it would be better to
| reject `deriving Show' for type constructors like Wonky (ie those with
| higher-kind parameters) than to generate instances which break the
| Or am I just being a spoilsport?
It depends on your definition of sport. ;-)
> data Sport f
> = Sport
> | Association (f Bool)
> deriving Show
> test = show (Sport :: Sport Maybe)