
Excerpts from Simon Marlow's message of Tue Aug 25 15:03:21 +0300 2009:
Now, I wouldn't be surprised if this doesn't cover all the use cases. Maybe people want to use the low-level send/recv. But I expect that for most applications, going via Handle will be the right thing, and we should look at how to accommodate the other use cases.
For example packet (datagram) sockets cannot use Handles at all since they need have explicit boundaries between packets. Thus stream oriented handles don't fit them. Another problematic case is setting/getting socket options - it is not possible to tell in the type system whether a particular Handle represents a socket or not. Handles will be ok for high-level TCP applications if the performance is good enough. - Taru Karttunen