| The more I think about it, I think 'superclass' is just the wrong
| terminology for dealing with class aliases. Superclass implies a strict
| partial order on classes, which just isn't the case for class aliases,
| for instance
|
| > class alias Foo a => Foo a = Bar a where ...

Crumbs!  I have no idea what that means!  Did you really mean to repeat "Foo"?  
According to your expansion in type signatures
        f :: (Foo a) => ...
expands to
        f :: (Foo a, Bar a) => ...
which presumably expands again.  I'm totally lost here

Have a look at my last message, which gives a variant of your desugaring that 
IMHO greatly clarifies the meaning of (what I understand by) aliases.


Simon
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to