[Haskell] PROPOSAL: class aliases

Wolfgang Jeltsch wolfgang at jeltsch.net
Thu Oct 13 06:08:27 EDT 2005


Am Donnerstag, 13. Oktober 2005 02:00 schrieb John Meacham:
> [...]

At a first look, this looks really nice.

> We allow new constructs of this form (the exact syntax is flexible of
> course): 
>
> >  class alias (Foo a, Bar a) => FooBar a where
> >    foo = ...
>
> what this does is declare 'FooBar a' as an alias for the two constraints
> 'Foo a' and 'Bar a'. This affects two things.

Wouldn't it be better to write it this way:

	class alias (Foo a, Bar a) = FooBar a where ...

(Foo a, Bar a) => FooBar a normally means that a type is an instance of Foo 
and Bar if it is an instance of FooBar but in the case of aliases, a type is 
also an instance of FooBar if it is an instance of Foo and Bar.

> [...]

Best wishes,
Wolfgang


More information about the Haskell mailing list