module UnliftIO.Streams.List ( chunkList , chunkListWith , fromList , toList ) where import Control.Monad.IO.Unlift (MonadUnliftIO, liftIO) import Prelude hiding (map) import System.IO.Streams (InputStream) import qualified System.IO.Streams.List as SL {-# INLINE chunkList #-} chunkList :: (MonadUnliftIO m) => Int -> InputStream a -> m (InputStream [a]) chunkList n is = liftIO $ SL.chunkList n is {-# INLINE chunkListWith #-} chunkListWith :: (MonadUnliftIO m) => (a -> Int -> Bool) -> InputStream a -> m (InputStream [a]) chunkListWith p is = liftIO $ SL.chunkListWith p is {-# INLINE toList #-} toList :: (MonadUnliftIO m) => InputStream a -> m [a] toList = liftIO . SL.toList {-# INLINE fromList #-} fromList :: (MonadUnliftIO m) => [a] -> m (InputStream a) fromList = liftIO . SL.fromList