packages feed

simple-pipe 0.0.0.3 → 0.0.0.4

raw patch · 2 files changed

+13/−7 lines, 2 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ Data.Pipe: onBreak :: Monad m => Pipe i o m r -> m b -> Pipe i o m r

Files

simple-pipe.cabal view
@@ -2,7 +2,7 @@ cabal-version:	>= 1.8  name:		simple-pipe-version:	0.0.0.3+version:	0.0.0.4 stability:	Experimental author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp> maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>@@ -87,7 +87,7 @@ source-repository	this     type:	git     location:	git://github.com/YoshikuniJujo/forest.git-    tag:	simple-pipe-0.0.0.3+    tag:	simple-pipe-0.0.0.4  library     hs-source-dirs:	src
src/Data/Pipe.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE FlexibleContexts, RankNTypes, PackageImports #-}  module Data.Pipe (-	PipeClass(..), Pipe, runPipe, finalize, finally, bracket ) where+	PipeClass(..), Pipe, runPipe, onBreak, finalize, finally, bracket ) where  import Control.Applicative import Control.Monad@@ -74,11 +74,17 @@ 	h <- liftP o 	p h `finally` (c h >> return ()) +onBreak :: Monad m => Pipe i o m r -> m b -> Pipe i o m r+onBreak (Ready f0 o p) f = Ready (f0 >> f >> return ()) o $ onBreak p f+onBreak (Need f0 n) f = Need (f0 >> f >> return ()) $ \i -> onBreak (n i) f+onBreak (Done f0 r) _ = Done f0 r+onBreak (Make f0 m) f = Make (f0 >> f >> return ()) $ flip onBreak f `liftM` m+ finalize :: Monad m => Pipe i o m r -> m b -> Pipe i o m r-finalize (Ready _ o p) f = Ready (f >> return ()) o $ finalize p f-finalize (Need _ n) f = Need (f >> return ()) $ \i -> finalize (n i) f-finalize (Done _ r) f = Done (f >> return ()) r-finalize (Make _ m) f = Make (f >> return ()) $ flip finalize f `liftM` m+finalize (Ready f0 o p) f = Ready (f0 >> f >> return ()) o $ finalize p f+finalize (Need f0 n) f = Need (f0 >> f >> return ()) $ \i -> finalize (n i) f+finalize (Done f0 r) f = Done (f0 >> f >> return ()) r+finalize (Make f0 m) f = Make (f0 >> f >> return ()) $ flip finalize f `liftM` m  finally :: MonadBaseControl IO m => Pipe i o m r -> m b -> Pipe i o m r finally p f = finalize (mapMake (`onException` f) p) f