SUMMARY: How about a supplement to the standard that contains the
'standard' extensions that everyone uses.
Thanks that explaination was very very helpfull! (Also Martins comments).
One thing that I would like to understand is why so many of these
nonstandard extensions get used all the time. It is very hard to
find any application package that doesnt use some nonstandard
extensions. I find this a bit distrubing.
For example, in Hudak's super cool book, he implements FAL (Sort of a
mini FRAN) using 'memo' and using channels to make streams (using the
getcontents thing I just mentioned). WHen I first read this part of the
book, a few months ago, I was really stuck. I had to walk around with that
book for quite a while trying to understand how these things could work!
How can a IO function return a stream? How could it be that I could call
another IO function to put more values into that same list (stream)? So I
started poking around in the library files and thats how I got around to
asking the question about unsafeinterleaveIO.
Ok so what is my point? Perhaps some of these 'extensions' are so damn
useful and so commonly used they should be moved into the standard. At
least then there would be some documentation somewhere! (I could not find
any documentation for unsafeinterleaveIO, only a pointer to a paper, where
I now realize this function is discussed, but is called delayIO :). I
find it quite often the case that I am reading about some cool idea
implemented in haskell, only to find that they use some extension
(exestential types, Concurrent Haskell, Trex, the list grows... ) that I
have to hunt all over for documentation for. Maybe we need a supplemental
standard, that consolidates all the 'standard' extensions that everyone
uses?
BTW, as long as I am on my soapbox, let me say we need a standard
GUI toolkit too :)
Ok, but in all seriousness, I understand the problem is that haskell
is very much an experimental language and so I should not be suprised that
all you researchers out there want to play with all the cool extensions
and stuff you think up. But some of use would just like to use the
language, and would love a standard set of nonstandard extensions <Grin>.
It would certainly help newcomers to the language do serious work with it!
+++++++++++++++++++++++++++++++++++++++++++++++++
Ron Legere -- http://www.its.caltech.edu/~legere
Caltech Quantum Optics
MC 12-33
Pasadena CA 91125
626-395-8343
FAX: 626-793-9506
+++++++++++++++++++++++++++++++++++++++++++++++++