[Haskell-cafe] Conduit: Where to run monad stacks?

Felipe Almeida Lessa felipe.lessa at gmail.com
Wed Aug 22 22:59:38 CEST 2012


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/Data-Conduit-Internal.html#pipe

-- 
Felipe.



More information about the Haskell-Cafe mailing list