ResourceT m (Source m a) -> Source m a
なる関数が書けてしまったのですが、これは正しいのでしょうか?
一応ちょっと使った感じ動作しているようには見えるのですが…。
import qualified Data.Conduit as C
import qualified Data.Conduit.List as CL
join :: C.ResourceIO m => C.ResourceT m (C.Source m a) -> C.Source m a
join m = C.Source (C.Open <$> n <*> pure []) (return ()) C.$= CL.concatMap id
where
n = fmap (\a -> [a]) <$> m