module HaskellWorks.Data.Conduit.Combinator where import Data.Conduit import Data.Conduit.List as L import Data.Maybe inJust :: Monad m => Conduit a m c -> Conduit (Maybe a) m (Maybe c) inJust c = getZipConduit $ ZipConduit (L.filter isNothing .| L.map (const Nothing)) <* ZipConduit (L.concat .| c .| L.map Just )