Bulat Ziganshin bulatz at
Wed Feb 8 04:03:54 EST 2006

Hello John,

Friday, February 03, 2006, 12:00:32 PM, you wrote:

JM> If we had a good standard poll/select interface in System.IO then we
JM> actually could implement a lot of concurrency as a library with no
JM> (required) run-time overhead. I'd really like to see such a thing get
JM> into the standard. Well, mainly it would just be a really useful thing
JM> to have in general. If others think it is a good idea I can try to come
JM> up with a suitable API and submit it to the repo.

i have delayed answering to this letter until i announced my Streams
library. now i can say that such API already exists - in terms of my
library you need just to write an transformer that intercepts
vGetBuf/vPutBuf calls and pass them to the select/poll machinery. so
you can write such transformer just now and every program that uses
Streams will benefit from its usage. Converting programs that use
Handles to using Streams should be also an easy task.

of course, Streams library is not some standard just now, and moreover
- it is not compatible with JHC. the greatest problem is what i using
type classes extensions available in GHC/Hugs what is not in H98
standard. so, i'm interested in pushing Haskell' to accept most
advanced possible extensions in this area and, of course, in actual
implementing these extensions in the Haskell compilers. alternative
way to make Streams available to wider range of Haskell compilers is
to strip support of streams working in monads other that IO.

if you can make select/poll transformer, at least for testing
purposes, that will be really great.

Best regards,
 Bulat                            mailto:bulatz at

More information about the Haskell-prime mailing list