packages feed

simple-pipe 0.0.0.20 → 0.0.0.21

raw patch · 4 files changed

+40/−34 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Data.Pipe.ByteString: fromFileLn :: (PipeClass p, MonadBaseControl IO m, MonadTrans (p i ByteString), MonadBaseControl IO (p i ByteString m)) => FilePath -> p i ByteString m ()
+ Data.Pipe.ByteString: fromFileLn :: (PipeClass p, MonadBaseControl IO m, MonadTrans (p i ByteString), Monad (p i ByteString m)) => FilePath -> p i ByteString m ()
- Data.Pipe.ByteString: fromHandle :: (PipeClass p, Monad m, MonadBaseControl IO (p i ByteString m)) => Handle -> p i ByteString m ()
+ Data.Pipe.ByteString: fromHandle :: (PipeClass p, MonadBase IO m, MonadTrans (p i ByteString), Monad (p i ByteString m)) => Handle -> p i ByteString m ()
- Data.Pipe.ByteString: fromHandleLn :: (PipeClass p, Monad m, MonadBaseControl IO (p i ByteString m)) => Handle -> p i ByteString m ()
+ Data.Pipe.ByteString: fromHandleLn :: (PipeClass p, MonadBase IO m, MonadTrans (p i ByteString), Monad (p i ByteString m)) => Handle -> p i ByteString m ()
- Data.Pipe.ByteString: toFileLn :: (PipeClass p, MonadBaseControl IO m, MonadTrans (p ByteString o), MonadBaseControl IO (p ByteString o m)) => FilePath -> p ByteString o m ()
+ Data.Pipe.ByteString: toFileLn :: (PipeClass p, MonadBaseControl IO m, MonadTrans (p ByteString o), Monad (p ByteString o m)) => FilePath -> p ByteString o m ()
- Data.Pipe.ByteString: toHandle :: (PipeClass p, Monad m, MonadBaseControl IO (p ByteString o m)) => Handle -> p ByteString o m ()
+ Data.Pipe.ByteString: toHandle :: (PipeClass p, MonadBase IO m, MonadTrans (p ByteString o), Monad (p ByteString o m)) => Handle -> p ByteString o m ()
- Data.Pipe.ByteString: toHandleLn :: (PipeClass p, Monad m, MonadBaseControl IO (p ByteString o m)) => Handle -> p ByteString o m ()
+ Data.Pipe.ByteString: toHandleLn :: (PipeClass p, MonadBase IO m, MonadTrans (p ByteString o), Monad (p ByteString o m)) => Handle -> p ByteString o m ()
- Data.Pipe.IO: debug :: (PipeClass p, Monad m, MonadBaseControl IO (p a a m), Show a) => p a a m ()
+ Data.Pipe.IO: debug :: (PipeClass p, MonadBase IO m, MonadTrans (p a a), Monad (p a a m), Show a) => p a a m ()
- Data.Pipe.IO: fromFile :: (PipeClass p, MonadBaseControl IO m, MonadTrans (p i Char), MonadBaseControl IO (p i Char m)) => FilePath -> p i Char m ()
+ Data.Pipe.IO: fromFile :: (PipeClass p, MonadBaseControl IO m, MonadTrans (p i Char), Monad (p i Char m)) => FilePath -> p i Char m ()
- Data.Pipe.IO: fromHandle :: (PipeClass p, Monad m, MonadBaseControl IO (p i Char m)) => Handle -> p i Char m ()
+ Data.Pipe.IO: fromHandle :: (PipeClass p, MonadBase IO m, MonadTrans (p i Char), Monad (p i Char m)) => Handle -> p i Char m ()
- Data.Pipe.IO: toFile :: (PipeClass p, MonadIO m, MonadBaseControl IO m, MonadTrans (p Char o), MonadBaseControl IO (p Char o m)) => FilePath -> p Char o m ()
+ Data.Pipe.IO: toFile :: (PipeClass p, MonadBaseControl IO m, MonadTrans (p Char o), Monad (p Char o m)) => FilePath -> p Char o m ()
- Data.Pipe.IO: toHandle :: (PipeClass p, Monad m, MonadBaseControl IO (p Char o m)) => Handle -> p Char o m ()
+ Data.Pipe.IO: toHandle :: (PipeClass p, MonadBase IO m, MonadTrans (p Char o), Monad (p Char o m)) => Handle -> p Char o m ()
- Data.Pipe.TChan: fromTChan :: MonadBaseControl IO m => TChan a -> Pipe () a m ()
+ Data.Pipe.TChan: fromTChan :: (PipeClass p, MonadBase IO m, MonadTrans (p x a), Monad (p x a m)) => TChan a -> p x a m ()
- Data.Pipe.TChan: fromTChans :: MonadBaseControl IO m => [TChan a] -> Pipe () a m ()
+ Data.Pipe.TChan: fromTChans :: (PipeClass p, MonadBase IO m, MonadTrans (p x a), Monad (p x a m)) => [TChan a] -> p x a m ()
- Data.Pipe.TChan: toTChan :: MonadBaseControl IO m => TChan a -> Pipe a () m ()
+ Data.Pipe.TChan: toTChan :: (PipeClass p, MonadBase IO m, MonadTrans (p a x), Monad (p a x m)) => TChan a -> p a x m ()

Files

simple-pipe.cabal view
@@ -2,7 +2,7 @@ cabal-version:	>= 1.8  name:		simple-pipe-version:	0.0.0.20+version:	0.0.0.21 stability:	Experimental author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp> maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>@@ -80,7 +80,7 @@ source-repository	this     type:	git     location:	git://github.com/YoshikuniJujo/simple-pipe.git-    tag:	simple-pipe-0.0.0.20+    tag:	simple-pipe-0.0.0.21  library     hs-source-dirs:	src
src/Data/Pipe/ByteString.hs view
@@ -19,41 +19,44 @@ bufferSize :: Int bufferSize = 65536 -fromHandleLn :: (PipeClass p, Monad m,-	MonadBaseControl IO (p i BSC.ByteString m)) =>+fromHandleLn :: (PipeClass p, MonadBase IO m,+	MonadTrans (p i BSC.ByteString), Monad (p i BSC.ByteString m)) => 	Handle -> p i BSC.ByteString m () fromHandleLn h = do-	ml <- liftBase $ (Just <$> BSC.hGetLine h) `catch` \(e :: IOException) ->+	ml <- lift . liftBase $+		(Just <$> BSC.hGetLine h) `catch` \(e :: IOException) -> 		case ioe_type e of 			EOF -> return Nothing 			_ -> ioException e 	maybe (return ()) ((>> fromHandleLn h) . yield) ml -toHandleLn :: (PipeClass p, Monad m, MonadBaseControl IO (p BSC.ByteString o m)) =>+toHandleLn :: (PipeClass p, MonadBase IO m,+	MonadTrans (p BSC.ByteString o), Monad (p BSC.ByteString o m)) => 	Handle -> p BSC.ByteString o m ()-toHandleLn h =-	await >>= maybe (return ()) ((>> toHandleLn h) . liftBase . BSC.hPutStrLn h)+toHandleLn h = await >>= maybe (return ())+	((>> toHandleLn h) . lift . liftBase . BSC.hPutStrLn h)  fromFileLn :: (PipeClass p, MonadBaseControl IO m,-	MonadTrans (p i BSC.ByteString),-	MonadBaseControl IO (p i BSC.ByteString m)) =>+	MonadTrans (p i BSC.ByteString), Monad (p i BSC.ByteString m)) => 	FilePath -> p i BSC.ByteString m () fromFileLn fp = 	bracket (liftBase $ openFile fp ReadMode) (liftBase . hClose) fromHandleLn  toFileLn :: (PipeClass p, MonadBaseControl IO m,-	MonadTrans (p BSC.ByteString o),-	MonadBaseControl IO (p BSC.ByteString o m)) =>+	MonadTrans (p BSC.ByteString o), Monad (p BSC.ByteString o m)) =>+--	MonadIO (p BSC.ByteString o m)) => 	FilePath -> p BSC.ByteString o m () toFileLn fp = bracket 	(liftBase $ openFile fp WriteMode) 	(liftBase . hClose) toHandleLn -fromHandle ::-	(PipeClass p, Monad m, MonadBaseControl IO (p i BSC.ByteString m)) =>+fromHandle :: (PipeClass p, MonadBase IO m,+	MonadTrans (p i BSC.ByteString), Monad (p i BSC.ByteString m)) => 	Handle -> p i BSC.ByteString m ()-fromHandle h = liftBase (BS.hGetSome h bufferSize) >>= yield >> fromHandle h+fromHandle h = lift (liftBase $ BS.hGetSome h bufferSize) >>= yield >> fromHandle h -toHandle :: (PipeClass p, Monad m, MonadBaseControl IO (p BSC.ByteString o m)) =>+toHandle :: (PipeClass p, MonadBase IO m,+	MonadTrans (p BSC.ByteString o), Monad (p BSC.ByteString o m)) => 	Handle -> p BSC.ByteString o m ()-toHandle h = await >>= maybe (return ()) ((>> toHandleLn h) . liftBase . BSC.hPut h)+toHandle h = await >>= maybe (return ())+	((>> toHandle h) . lift . liftBase . BSC.hPut h)
src/Data/Pipe/IO.hs view
@@ -12,29 +12,30 @@ import System.IO import GHC.IO.Exception -fromHandle :: (PipeClass p, Monad m, MonadBaseControl IO (p i Char m)) =>-	Handle -> p i Char m ()+fromHandle :: (PipeClass p, MonadBase IO m,+	MonadTrans (p i Char), Monad (p i Char m)) => Handle -> p i Char m () fromHandle h = do-	mc <- liftBase $ (Just <$> hGetChar h) `catch` \(e :: IOException) ->+	mc <- lift . liftBase $ (Just <$> hGetChar h) `catch` \(e :: IOException) -> 		case ioe_type e of 			EOF -> return Nothing 			_ -> ioException e 	maybe (return ()) ((>> fromHandle h) . yield) mc -toHandle :: (PipeClass p, Monad m, MonadBaseControl IO (p Char o m)) =>-	Handle -> p Char o m ()-toHandle h = await >>= maybe (return ()) ((>> toHandle h) . liftBase . hPutChar h)+toHandle :: (PipeClass p, MonadBase IO m,+	MonadTrans (p Char o), Monad (p Char o m)) => Handle -> p Char o m ()+toHandle h = await >>= maybe (return ())+	((>> toHandle h) . lift . liftBase . hPutChar h)  fromFile :: (PipeClass p, MonadBaseControl IO m,-	MonadTrans (p i Char), MonadBaseControl IO (p i Char m)) =>-	FilePath -> p i Char m ()+	MonadTrans (p i Char), Monad (p i Char m)) => FilePath -> p i Char m () fromFile fp = 	bracket (liftBase $ openFile fp ReadMode) (liftBase . hClose) fromHandle -toFile :: (PipeClass p, MonadIO m, MonadBaseControl IO m,-	MonadTrans (p Char o), MonadBaseControl IO (p Char o m)) =>-	FilePath -> p Char o m ()+toFile :: (PipeClass p, MonadBaseControl IO m,+	MonadTrans (p Char o), Monad (p Char o m)) => FilePath -> p Char o m () toFile fp = bracket (liftBase $ openFile fp WriteMode) (liftBase . hClose) toHandle -debug :: (PipeClass p, Monad m, MonadBaseControl IO (p a a m), Show a) => p a a m ()-debug = await >>= maybe (return ()) (\x -> liftBase (print x) >> yield x >> debug)+debug :: (PipeClass p, MonadBase IO m,+	MonadTrans (p a a), Monad (p a a m), Show a) => p a a m ()+debug = await >>= maybe (return ())+	(\x -> lift (liftBase $ print x) >> yield x >> debug)
src/Data/Pipe/TChan.hs view
@@ -6,15 +6,16 @@  import Control.Applicative import "monads-tf" Control.Monad.Trans-import Control.Monad.Trans.Control import Control.Monad.Base import Control.Concurrent.STM import Data.Pipe -fromTChan :: MonadBaseControl IO m => TChan a -> Pipe () a m ()+fromTChan :: (PipeClass p, MonadBase IO m,+	MonadTrans (p x a), Monad (p x a m)) => TChan a -> p x a m () fromTChan c = lift (liftBase . atomically $ readTChan c) >>= yield >> fromTChan c -fromTChans :: MonadBaseControl IO m => [TChan a] -> Pipe () a m ()+fromTChans :: (PipeClass p, MonadBase IO m,+	MonadTrans (p x a), Monad (p x a m)) => [TChan a] -> p x a m () fromTChans cs = (>> fromTChans cs) . (yield =<<) . lift . liftBase . atomically $ do 	readTChans cs >>= maybe retry return @@ -24,6 +25,7 @@ 	e <- isEmptyTChan c 	if e then readTChans cs else Just <$> readTChan c -toTChan :: MonadBaseControl IO m => TChan a -> Pipe a () m ()+toTChan :: (PipeClass p, MonadBase IO m,+	MonadTrans (p a x), Monad (p a x m)) => TChan a -> p a x m () toTChan c = await >>= maybe (return ()) 	((>> toTChan c) . lift . liftBase . atomically . writeTChan c)