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 +0/−69
- enumerator-tf.cabal +17/−18
- lib/Data/Enumerator/Instances/TF.hs +75/−0
− 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)