-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | simple pipeline library like conduit -- -- examples/upperFile.hs -- -- -- -- extensions -- -- -- --
--   import Data.Pipe
--   import Data.Char
--   import System.IO
--   import "monads-tf" Control.Monad.Trans
--   
--   main :: IO ()
--   main = do
--   	_ <- runPipe $ readFileP "sample.txt"
--   	=$= takeP 3
--   	=$= convert (map toUpper)
--   	=$= writeString
--   	return ()
--   
--   readFileP :: FilePath -> Pipe () String IO ()
--   readFileP fp = bracket (openFile fp ReadMode) hClose hRead
--   
--   hRead :: Handle -> Pipe () String IO ()
--   hRead h = do
--   	eof <- lift $ hIsEOF h
--   	if eof then return () else do
--   		l <- lift $ hGetLine h
--   		yield l
--   		hRead h
--   
--   writeString :: Pipe String () IO ()
--   writeString = do
--   	ms <- await
--   	case ms of
--   		Just s -> lift (putStrLn s) >> writeString
--   		_ -> return ()
--   
--   convert :: Monad m => (a -> b) -> Pipe a b m ()
--   convert f = do
--   	mx <- await
--   	case mx of
--   		Just x -> yield (f x) >> convert f
--   		_ -> return ()
--   
--   takeP :: Monad m => Int -> Pipe a a m ()
--   takeP 0 = return ()
--   takeP n = do
--   mx <- await
--   case mx of
--   	Just x -> yield x >> takeP (n - 1)
--   	_ -> return ()
--   
@package simple-pipe @version 0.0.0.0 module Data.Pipe class PipeClass p (=$=) :: (PipeClass p, Monad m) => p a b m x -> p b c m y -> p a c m y yield :: (PipeClass p, Monad m) => o -> p i o m () await :: (PipeClass p, Monad m) => p i o m (Maybe i) data Pipe i o m r runPipe :: Monad m => Pipe i o m r -> m (Maybe r) finalize :: Monad m => Pipe i o m r -> m b -> Pipe i o m r finally :: MonadBaseControl IO m => Pipe i o m r -> m b -> Pipe i o m r bracket :: MonadBaseControl IO m => m a -> (a -> m b) -> (a -> Pipe i o m r) -> Pipe i o m r instance MonadTrans (Pipe i o) instance Monad m => Applicative (Pipe i o m) instance Monad m => Functor (Pipe i o m) instance Monad m => Monad (Pipe i o m) instance PipeClass Pipe