packages feed

simple-pipe 0.0.0.9 → 0.0.0.10

raw patch · 2 files changed

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

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ Data.Pipe: instance MonadError m => MonadError (Pipe i o m)

Files

simple-pipe.cabal view
@@ -2,7 +2,7 @@ cabal-version:	>= 1.8  name:		simple-pipe-version:	0.0.0.9+version:	0.0.0.10 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/simple-pipe.git-    tag:	simple-pipe-0.0.0.9+    tag:	simple-pipe-0.0.0.10  library     hs-source-dirs:	src
src/Data/Pipe.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE FlexibleContexts, RankNTypes, PackageImports #-}+{-# LANGUAGE TypeFamilies, FlexibleContexts, RankNTypes, PackageImports #-}  module Data.Pipe ( PipeClass(..), Pipe, finally, bracket ) where @@ -7,6 +7,7 @@ import Control.Exception.Lifted (onException) import Control.Monad.Trans.Control import "monads-tf" Control.Monad.Trans+import "monads-tf" Control.Monad.Error  class PipeClass p where 	runPipe :: Monad m => p i o m r -> m (Maybe r)@@ -25,6 +26,15 @@ 	| Need (m ()) (Maybe i -> Pipe i o m r) 	| Done (m ()) r 	| Make (m ()) (m (Pipe i o m r))++instance MonadError m => MonadError (Pipe i o m) where+	type ErrorType (Pipe i o m) = ErrorType m+	throwError e = Make (return ()) $ throwError e+	Ready f o p `catchError` c = Ready f o $ p `catchError` c+	Need f p `catchError` c = Need f $ \mi -> p mi `catchError` c+	Done f r `catchError` _ = Done f r+	Make f p `catchError` c =+		Make f . ((`catchError` c) `liftM`) $ p `catchError` (return . c)  finalizer :: Pipe i o m r -> m () finalizer (Ready f _ _) = f