I made a small example related to the problem: http://hpaste.org/9957
It's my attempt to run data from the network directly into Parsec without having to fear deadlock due to blocking. The idea is that we feed Parsec from a timeout-enabled Stream based on Handle. As long as Parsec is able to read the data it wants reasonably quickly, everything is OK. If the remote host stops sending data, we don't hang; we just treat it as a parse error. But the code demonstrates a problem. Why is it doing that? How to fix it? Thanks. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe