:kind feature request in ghci

Benjamin Franksen benjamin.franksen at bessy.de
Sun Mar 28 20:56:22 EST 2004


On Saturday 27 March 2004 16:33, S. Alexander Jacobson wrote:
> Alternatively, is there another way to
> figure out how to create an instance of
> a class like this?
>
>     class MyClass a b where emptyVal::a b
>
> Here are one of the thing that don't work:
>
>     type MyType a = [a]
>     instance MyClass (MyType a) a where emptyVal=[]
>
> And I have no idea why...

Well, you've been told why.

Anyway, why do you insist on using a two parameter type class? The more
general

	class MyClass a where emptyVal::a

would do exactly the same. To make type constructor B applied to type C an
instance you just write

	instance MyClass (B C) where ...

for instance

	instance MyClass [a] where emptyVal=[]

If you enable overlapping instances you could even add

	instance MyClass [Int] where emptyVal=[0]

The only difference to your 2-parameter class is that now you can declare
instances for simple types like Integer too. Is that a problem?

Ben



More information about the Glasgow-haskell-users mailing list