explicitly quantified classes in functions
Simon Peyton-Jones
simonpj@microsoft.com
Fri, 5 Apr 2002 00:06:17 -0800
| Ah yes, silly me. What I had in mind, I suppose, was=20
| something more along the lines of:
|=20
| foo :: Double -> (exists q . Foo q =3D> q)
Correct. Currently you can only express this by wrapping
the existential in a constructor:
data R =3D forall q. Foo q =3D> MkR q
foo :: Double -> R
Mark Shields and I wrote a paper about doing more fully
fledged existentials, but it's quite a significant chunk of=20
work to implement.
http://research.microsoft.com/~simonpj/Papers/first-class-modules
Simon