
22 Aug
2012
22 Aug
'12
4:59 p.m.
I can't give you a definite answer. However, I guess that's because the monad sequencing (i.e. where >>= of your monad is called) is inside the 'pipe' function [1] (i.e., $$, $=, =$), the function that connects pipes and runs them. 'pipe' needs to be able to interleave lifted actions between both upstream and downstream pipes, and for that they need to live on the same monad. What you want is somehow having upstream and downstream pipes on different monads. HTH, [1] http://hackage.haskell.org/packages/archive/conduit/0.5.2.3/doc/html/src/Dat... -- Felipe.