A couple months ago we all had an interesting discussion  about the
design of a transport layer interface for a new distributed-process
(Cloud Haskell) implementation.
Since then my colleague Nick and I have been working on prototyping and
incorporating the feedback on our initial design proposal.
We now have some code ready for people to look and poke at, and in
addition we have a new design document. We would now like to invite
feedback on both.
While we consider this work to be a prototype, we have a number of
examples which demonstrate the interface at work, which can be found in
the `/distributed/examples` directory in the main repository.
In particular, we have not paid any attention to exception handling at
this stage, and would appreciate comments specifying the failure
We have tried to accommodate the suggestions made in the initial thread,
and we'd appreciate any feedback or comments you might have.
The most salient differences from the original are:
* a concrete system design allowing multiple backends,
configuration and peer discovery/creation
* a concrete transport interface
* a proposed solution to the problem of how to supply
transport-specific connection options (e.g. all the crazy TCP
* four different connection types: reliable, unordered, unreliable
* vectored send/receive
Duncan Coutts, Haskell Consultant
Well-Typed LLP, http://www.well-typed.com/