packages feed

enumerator-tf 0.1 → 0.1.1

raw patch · 3 files changed

+92/−87 lines, 3 filesdep −extensible-exceptionsdep ~basePVP ok

version bump matches the API change (PVP)

Dependencies removed: extensible-exceptions

Dependency ranges changed: base

API changes (from Hackage documentation)

Files

− Data/Enumerator/Instances/TF.hs
@@ -1,69 +0,0 @@-{-# LANGUAGE TypeFamilies #-}--------------------------------------------------------------------------------- |--- Module: Data.Enumerator.Instances.TF--- Copyright: 2010 John Millikin--- License: MIT------ Maintainer: jmillikin@gmail.com--- Portability: portable------ Enumerator instances for monads-tf classes----------------------------------------------------------------------------------module Data.Enumerator.Instances.TF () where--import qualified Control.Exception as Exc--import Control.Monad.Trans (lift)-import qualified Control.Monad.Cont.Class as M_C-import qualified Control.Monad.Error.Class as M_E-import qualified Control.Monad.RWS.Class as M_RWS-import qualified Control.Monad.Reader.Class as M_R-import qualified Control.Monad.State.Class as M_S-import qualified Control.Monad.Writer.Class as M_W--import qualified Data.Enumerator as E-import Data.Monoid (mempty, mappend)--instance M_C.MonadCont m => M_C.MonadCont (E.Iteratee a m) where-	callCC f = E.Iteratee $ M_C.callCC $ \c -> let-		emptyYield x = E.Yield x (E.Chunks [])-		in E.runIteratee (f (E.Iteratee . c . emptyYield))--instance Monad m => M_E.MonadError (E.Iteratee a m) where-	type M_E.ErrorType (E.Iteratee a m) = Exc.SomeException-	throwError = E.throwError-	catchError = E.catchError--instance M_RWS.MonadRWS m => M_RWS.MonadRWS (E.Iteratee a m)--instance M_R.MonadReader m => M_R.MonadReader (E.Iteratee a m) where-	type M_R.EnvType (E.Iteratee a m) = M_R.EnvType m-	ask = lift M_R.ask-	local f m = E.Iteratee (M_R.local f (E.runIteratee m))--instance M_S.MonadState m =>  M_S.MonadState (E.Iteratee a m) where-	type  M_S.StateType (E.Iteratee a m) =  M_S.StateType m-	get = lift  M_S.get-	put = lift .  M_S.put--instance M_W.MonadWriter m => M_W.MonadWriter (E.Iteratee a m) where-	type M_W.WriterType (E.Iteratee a m) = M_W.WriterType m-	tell = lift . M_W.tell-	-	listen = loop mempty where-		loop w0 m = E.Iteratee $ do-			~(step, w1) <- M_W.listen (E.runIteratee m)-			let w = mappend w0 w1-			return $ case step of-				E.Yield x cs -> E.Yield (x, w) cs-				E.Error err -> E.Error err-				E.Continue k -> E.Continue (loop w . k)-	-	pass m = E.Iteratee $ M_W.pass $ do-		step <- E.runIteratee m-		case step of-			E.Yield (x, wf) cs -> return (E.Yield x cs, wf)-			E.Error err -> return (E.Error err, id)-			E.Continue k -> return (E.Continue (M_W.pass . k), id)
enumerator-tf.cabal view
@@ -1,37 +1,36 @@ name: enumerator-tf-version: 0.1-synopsis: Enumerator instances for monads-tf classes+version: 0.1.1 license: MIT license-file: license.txt author: John Millikin <jmillikin@gmail.com>-maintainer: jmillikin@gmail.com-copyright: Copyright (c) John Millikin 2010+maintainer: John Millikin <jmillikin@gmail.com> build-type: Simple-cabal-version: >=1.6+cabal-version: >= 1.6 category: Enumerator stability: experimental-homepage: http://john-millikin.com/software/enumerator/+homepage: https://john-millikin.com/software/enumerator/ bug-reports: mailto:jmillikin@gmail.com-tested-with: GHC==6.12.1 +synopsis: Enumerator instances for monads-tf classes+description:+ source-repository head   type: bazaar-  location: http://john-millikin.com/software/enumerator/+  location: https://john-millikin.com/branches/enumerator-tf/0.1/ +source-repository this+  type: bazaar+  location: https://john-millikin.com/branches/enumerator-tf/0.1/+  tag: enumerator-tf_0.1.1+ library-  ghc-options: -Wall -fno-warn-orphans+  hs-source-dirs: lib+  ghc-options: -Wall -O2    build-depends:-      monads-tf >= 0.1 && < 0.2+      base >= 4.0 && < 5.0+    , monads-tf >= 0.1 && < 0.2     , enumerator >= 0.4 && < 0.5--  if impl(ghc >= 6.10)-    build-depends:-        base >= 4 && < 5-  else-    build-depends:-        base >= 3 && < 4-      , extensible-exceptions >= 0.1 && < 0.2    exposed-modules:     Data.Enumerator.Instances.TF
+ lib/Data/Enumerator/Instances/TF.hs view
@@ -0,0 +1,75 @@+{-# LANGUAGE TypeFamilies #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++-----------------------------------------------------------------------------+-- |+-- Module: Data.Enumerator.Instances.TF+-- Copyright: 2010 John Millikin+-- License: MIT+--+-- Maintainer: jmillikin@gmail.com+-- Portability: portable+--+-- Enumerator instances for monads-tf classes+--+-----------------------------------------------------------------------------+module Data.Enumerator.Instances.TF () where++import qualified Control.Exception as Exc+import           Data.Monoid (mempty, mappend)++import           Control.Monad.Trans (lift)+import qualified Control.Monad.Cont.Class as M_C+import qualified Control.Monad.Error.Class as M_E+import           Control.Monad.Error.Class (ErrorType)+import qualified Control.Monad.RWS.Class as M_RWS+import qualified Control.Monad.Reader.Class as M_R+import           Control.Monad.Reader.Class (EnvType)+import qualified Control.Monad.State.Class as M_S+import           Control.Monad.State.Class (StateType)+import qualified Control.Monad.Writer.Class as M_W+import           Control.Monad.Writer.Class (WriterType)++import qualified Data.Enumerator as E++instance M_C.MonadCont m => M_C.MonadCont (E.Iteratee a m) where+	callCC f = E.Iteratee $ M_C.callCC $ \c -> let+		emptyYield x = E.Yield x (E.Chunks [])+		in E.runIteratee (f (E.Iteratee . c . emptyYield))++instance Monad m => M_E.MonadError (E.Iteratee a m) where+	type ErrorType (E.Iteratee a m) = Exc.SomeException+	throwError = E.throwError+	catchError = E.catchError++instance M_RWS.MonadRWS m => M_RWS.MonadRWS (E.Iteratee a m)++instance M_R.MonadReader m => M_R.MonadReader (E.Iteratee a m) where+	type EnvType (E.Iteratee a m) = M_R.EnvType m+	ask = lift M_R.ask+	local f m = E.Iteratee (M_R.local f (E.runIteratee m))++instance M_S.MonadState m =>  M_S.MonadState (E.Iteratee a m) where+	type StateType (E.Iteratee a m) =  M_S.StateType m+	get = lift  M_S.get+	put = lift .  M_S.put++instance M_W.MonadWriter m => M_W.MonadWriter (E.Iteratee a m) where+	type WriterType (E.Iteratee a m) = M_W.WriterType m+	tell = lift . M_W.tell+	+	listen = loop mempty where+		loop w0 m = E.Iteratee $ do+			~(step, w1) <- M_W.listen (E.runIteratee m)+			let w = mappend w0 w1+			return $ case step of+				E.Yield x cs -> E.Yield (x, w) cs+				E.Error err -> E.Error err+				E.Continue k -> E.Continue (loop w . k)+	+	pass m = E.Iteratee $ M_W.pass $ do+		step <- E.runIteratee m+		case step of+			E.Yield (x, wf) cs -> return (E.Yield x cs, wf)+			E.Error err -> return (E.Error err, id)+			E.Continue k -> return (E.Continue (M_W.pass . k), id)