| Ah yes, silly me.  What I had in mind, I suppose, was 
| something more along the lines of:
| 
| foo :: Double -> (exists q . Foo q => q)

Correct.  Currently you can only express this by wrapping
the existential in a constructor:

        data R = forall q. Foo q => 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 
work to implement.
http://research.microsoft.com/~simonpj/Papers/first-class-modules

Simon

_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to