
Felipe Lessa
On Sat, Jul 18, 2009 at 12:40:15AM +0200, Maciej Piechotka wrote:
I have a data structure of data Monad m => NntpConnection m = NntpConnection { input :: ByteString, output :: ByteString -> m () }
I'd like to create echo structure such that the goes to output is going to (lazy) input. For sure it is possible to use network and IO monad - is is possible to do it purely?
In words, not code: you may create a Chan of strict ByteStrings. On the output side you just append all the chunks of the lazy ByteString to the Chan, or you may copy the lazy ByteString in one chunk of strict ByteString. On the input side you "getContents" and "fromChunks". Should work, I guess.
-- Felipe.
Sorry - I don't follow: 1. How the output is suppose to get into input? 2. Why combine getContents and fromChunks if getContents is overloaded for ByteString? 3. How to use getContents without IO - either network or posix pipe? Regards