John,
My formal proposal for existential types in Haskell is "make them the same as
in Hope+C". If you do not have a copy of Nigel Perry's PhD thesis, I can ask
Nigel to send you one (I am having some bound copies made now).
Also I seriously suggest that the Haskell committee look at continuation-style
I/O as a primitive, and dispense with the stream model altogether. Keeping an
underlying stream model is sure to hold back developments in functional
language I/O (at least with Haskell), such as manipulating objects with state,
having polymorphic requests, and introducing concurrency. As Nigel and I have
pointed out to numerous people (including Haskell committee members), the
statement that stream I/O cannot be efficiently emulated by continuation I/O is
true only if the continuation model being used is lacking in certain request
types (i.e. references/assignment as in Tui or coroutines as in Hope+C).
Stream I/O is only useful for making stupid programming mistakes. I am sure
the I/O semantics can be easily defined without it.
Lets improve the I/O for Haskell 2.
Committee members and Haskell implementors: please make some comment on these
proposals (with justification if you don't want to junk the stream model).
_______________________________________________________________________________
[EMAIL PROTECTED] Evan Ireland, Department of Computer Science,
+64-6-3569099 x8541 Massey University, Palmerston North, New Zealand.