module HaskellWorks.Data.Conduit.List
  ( runListConduit
  ) where

import Data.Conduit
import Prelude

import qualified Data.Conduit.List as CL
import qualified Prelude           as P

runListConduit :: ConduitT i o [] () -> [i] -> [o]
runListConduit :: ConduitT i o [] () -> [i] -> [o]
runListConduit ConduitT i o [] ()
c [i]
is = [[o]] -> [o]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
P.concat ([[o]] -> [o]) -> [[o]] -> [o]
forall a b. (a -> b) -> a -> b
$ ConduitT () Void [] [o] -> [[o]]
forall (m :: * -> *) r. Monad m => ConduitT () Void m r -> m r
runConduit (ConduitT () Void [] [o] -> [[o]])
-> ConduitT () Void [] [o] -> [[o]]
forall a b. (a -> b) -> a -> b
$ [i] -> ConduitT () i [] ()
forall (m :: * -> *) a i. Monad m => [a] -> ConduitT i a m ()
CL.sourceList [i]
is ConduitT () i [] ()
-> ConduitM i Void [] [o] -> ConduitT () Void [] [o]
forall (m :: * -> *) a b c r.
Monad m =>
ConduitM a b m () -> ConduitM b c m r -> ConduitM a c m r
.| ConduitT i o [] ()
c ConduitT i o [] ()
-> ConduitM o Void [] [o] -> ConduitM i Void [] [o]
forall (m :: * -> *) a b c r.
Monad m =>
ConduitM a b m () -> ConduitM b c m r -> ConduitM a c m r
.| ConduitM o Void [] [o]
forall (m :: * -> *) a o. Monad m => ConduitT a o m [a]
CL.consume