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