[Haskell-cafe] TCP Server

Mario Blažević mblazevic at stilo.com
Mon Jan 30 21:46:59 CET 2012

On 12-01-28 06:56 AM, Felipe Almeida Lessa wrote:
> On Sat, Jan 28, 2012 at 9:40 AM, Yves Parès<yves.pares at gmail.com>  wrote:
>>> I think there is still no consensus on which iteratee library is the one
>>> to use. There are at least iteratee, enumerator, iterIO, conduit, and
>>> pipes. The reusability of your libary depends on the choice of
>>> iteratee-style library you select.
>> Yes, and IMO this is a growing problem. Since iteratees were designed, a lot
>> of different libraries providing this kind of service have appeared.
>> Of course they all have advantages and inconvenients, but some libraries
>> that could be compatible are not, because they rely on a different
>> iteratee-ish package. For instance pipes (as its documentation states) is
>> really like iteratee... but with more concrete names. Still it's sufficient
>> to break compatibility.
> In principle it's possible to have some code that converts functions
> between these different iteratee packages -- at least between
> iteratee, enumerator and iterIO since these seem to have more or less
> the same implementation ideas.

	It's not only possible, it's done. The coroutine-enumerator and 
coroutine-iteratee packages convert to and from the enumerator and 
iteratee packages, using monad-coroutine as a bridge. The conversions 
are bare-bone, and I don't know if anybody has ever used them in 
practice. They still prove the concept.

 > Converting from pipes may be possible, but to pipes seems pretty
 > difficult since pipes sweeps IO under the rug.

	A Pipe appears to be just a specialized Coroutine from the 
monad-coroutine package with its type arguments expanded, so it would 
also be convertible.

Mario Blazevic
mblazevic at stilo.com
Stilo International

This message, including any attachments, is for the sole use of the
intended recipient(s) and may contain confidential and privileged
information. Any unauthorized review, use, disclosure, copying, or
distribution is strictly prohibited. If you are not the intended
recipient(s) please contact the sender by reply email and destroy
all copies of the original message and any attachments.

More information about the Haskell-Cafe mailing list