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.


Reply via email to