On Thu, May 01, 2008 at 03:42:53PM +0100, Simon Peyton-Jones wrote:
> | Yeah, I disagree here, mainly because I don't want to conflate
> | superclasses with class aliases. I feel they have different uses, even
> | though they can sometimes achieve the same thing.
> 
> Fair enough.  But the strange syntax
> 
> class alias Num a = Eq a => (Additive a, Multiplicative a)
> 
> *does* seem so say that the (Eq a) behaves in a superclass way, and
> (Additive a, Multiplicative a) behave in a class-alias way, as it
> were.  That seems inconsistent with the design goal you describe
> above.

Wolfgang suggested the alternate syntax

class alias Eq a => Num a = (Additive a, Multiplicative a) where ....

The correct reading being:

if 'Eq a' then 'Num a' is an alias for (Additive a,Multiplicative a)

I think I am coming around to his point of view, do you think this makes
it clearer?

        John

-- 
John Meacham - ⑆repetae.net⑆john⑈
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to