forall and class contexts

Simon Peyton-Jones simonpj@microsoft.com
Wed, 16 Oct 2002 08:40:18 +0100


| I want to define something like
|     class (Eq (forall a. T a), Monad T) =3D> C T
| where the context shall mean that T has to be an instance of Monad and
| that for every type a the type T a has to be an instance of Eq.
| Is such a thing possible with some Haskell implementation?

Not currently, but I think it makes sense, and I'll implement it if
enough people ask.

Presumably you mean 'instance' not 'class'?  A class decl always has a
type variable after the =3D>; thus ...=3D> C a.

There aren't many type constructors T for which T a is an equality
type...

Simon