simple-pipe 0.0.0.17 → 0.0.0.18
raw patch · 2 files changed
+23/−3 lines, 2 filesPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ Data.Pipe: (=@=) :: (PipeClass p, PipeChoice p, Monad m, Monad (p i (Either a r) m), Monad (p a o m), Monad (p r o m), Monad (p (Either a r) o m)) => p i a m r -> p a o m r' -> p i o m r
Files
- simple-pipe.cabal +2/−2
- src/Data/Pipe.hs +21/−1
simple-pipe.cabal view
@@ -2,7 +2,7 @@ cabal-version: >= 1.8 name: simple-pipe-version: 0.0.0.17+version: 0.0.0.18 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.17+ tag: simple-pipe-0.0.0.18 library hs-source-dirs: src
src/Data/Pipe.hs view
@@ -2,7 +2,7 @@ PackageImports #-} module Data.Pipe (- PipeClass(..), PipeChoice(..), convert,+ PipeClass(..), PipeChoice(..), (=@=), convert, Pipe, finally, bracket ) where import Control.Applicative@@ -15,6 +15,10 @@ import "monads-tf" Control.Monad.Reader import "monads-tf" Control.Monad.Writer +infixr 2 =@=+infixr 3 =$=+infixr 4 ++++, ||||+ class PipeClass p where runPipe :: Monad m => p i o m r -> m (Maybe r) (=$=) :: Monad m => p a b m x -> p b c m y -> p a c m y@@ -196,3 +200,19 @@ voidM :: Monad m => m a -> m () voidM = (>> return ())++passResult :: (PipeClass p, Monad m, Monad (p i (Either a r) m)) =>+ p i a m r -> p i (Either a r) m ()+passResult s = mapOut Left s >>= yield . Right++recvResult :: (PipeClass p, PipeChoice p, Monad m,+ Monad (p a o m), Monad (p r o m), Monad (p (Either a r) o m)) =>+ p a o m r' -> p (Either a r) o m r+recvResult p =+ (p >> return undefined) |||| (await >>= maybe (return undefined) return)+++(=@=) :: (PipeClass p, PipeChoice p, Monad m, Monad (p i (Either a r) m),+ Monad (p a o m), Monad (p r o m), Monad (p (Either a r) o m)) =>+ p i a m r -> p a o m r' -> p i o m r+p1 =@= p2 = passResult p1 =$= recvResult p2