writer-cps-mtl 0.1.1.0 → 0.1.1.1
raw patch · 5 files changed
+157/−145 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Control.Monad.Writer.CPS: instance (GHC.Base.Monoid w, GHC.Base.Monad m) => Control.Monad.Writer.Class.MonadWriter w (Control.Monad.Trans.Writer.CPS.WriterT w m)
+ Control.Monad.Writer.CPS: instance (Control.Monad.Reader.Class.MonadReader r m, GHC.Base.Monoid w) => Control.Monad.Reader.Class.MonadReader r (Control.Monad.Trans.Writer.CPS.WriterT w m)
+ Control.Monad.Writer.CPS: instance (GHC.Base.Monad m, GHC.Base.Monoid w) => Control.Monad.Writer.Class.MonadWriter w (Control.Monad.Trans.Writer.CPS.WriterT w m)
+ Control.Monad.Writer.CPS: instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Control.Monad.Trans.Writer.CPS.WriterT w m)
Files
- Control/Monad/RWS/CPS.hs +0/−79
- Control/Monad/Writer/CPS.hs +0/−64
- src/Control/Monad/RWS/CPS.hs +79/−0
- src/Control/Monad/Writer/CPS.hs +76/−0
- writer-cps-mtl.cabal +2/−2
− Control/Monad/RWS/CPS.hs
@@ -1,79 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE UndecidableInstances #-}--------------------------------------------------------------------------------- |--- Module : Control.Monad.RWS.CPS--- Copyright : (c) Daniel Mendler 2016,--- (c) Andy Gill 2001,--- (c) Oregon Graduate Institute of Science and Technology, 2001--- License : BSD-style (see the file LICENSE)------ Maintainer : mail@daniel-mendler.de--- Stability : experimental--- Portability : non-portable (multi-param classes, functional dependencies)------ Stricter RWS monad using continuation-passing-style for the--- writer output.------ Inspired by the paper--- /Functional Programming with Overloading and Higher-Order Polymorphism/,--- Mark P Jones (<http://web.cecs.pdx.edu/~mpj/>)--- Advanced School of Functional Programming, 1995.--------------------------------------------------------------------------------module Control.Monad.RWS.CPS (- -- * The RWS monad- RWS,- rws,- runRWS,- evalRWS,- execRWS,- mapRWS,- withRWS,- -- * The RWST monad transformer- RWST,- runRWST,- evalRWST,- execRWST,- mapRWST,- withRWST,- module X-) where--import Control.Monad as X-import Control.Monad.Fix as X-import Control.Monad.RWS.Class as X-import Control.Monad.Trans as X-import Data.Monoid as X--import Control.Monad.Cont.Class-import Control.Monad.Error.Class-import Control.Monad.Trans.RWS.CPS-import qualified Control.Monad.Trans.RWS.CPS as CPS---- Orphan instances--instance (Monoid w, Monad m) => MonadWriter w (RWST r w s m) where- writer = CPS.writer- tell = CPS.tell- listen = CPS.listen- pass = CPS.pass--instance Monad m => MonadReader r (RWST r w s m) where- ask = CPS.ask- local = CPS.local- reader = CPS.reader--instance Monad m => MonadState s (RWST r w s m) where- get = CPS.get- put = CPS.put- state = CPS.state--instance MonadError e m => MonadError e (RWST r w s m) where- throwError = lift . throwError- catchError = CPS.liftCatch catchError--instance MonadCont m => MonadCont (RWST r w s m) where- callCC = CPS.liftCallCC callCC
− Control/Monad/Writer/CPS.hs
@@ -1,64 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE UndecidableInstances #-}--------------------------------------------------------------------------------- |--- Module : Control.Monad.Writer.CPS--- Copyright : (c) Daniel Mendler 2016,--- (c) Andy Gill 2001,--- (c) Oregon Graduate Institute of Science and Technology, 2001--- License : BSD-style (see the file LICENSE)------ Maintainer : mail@daniel-mendler.de--- Stability : experimental--- Portability : non-portable (multi-param classes, functional dependencies)------ Stricter writer monad using continuation-passing-style for the--- writer output.------ Inspired by the paper--- /Functional Programming with Overloading and Higher-Order Polymorphism/,--- Mark P Jones (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>)--- Advanced School of Functional Programming, 1995.--------------------------------------------------------------------------------module Control.Monad.Writer.CPS (- -- * The Writer monad- Writer,- runWriter,- execWriter,- mapWriter,- -- * The WriterT monad transformer- WriterT,- runWriterT,- execWriterT,- mapWriterT,- module X-) where--import Control.Monad as X-import Control.Monad.Fix as X-import Control.Monad.Trans as X-import Control.Monad.Writer.Class as X-import Data.Monoid as X--import Control.Monad.Cont.Class-import Control.Monad.Error.Class-import Control.Monad.Trans.Writer.CPS-import qualified Control.Monad.Trans.Writer.CPS as CPS---- Orphan instances--instance (Monoid w, Monad m) => MonadWriter w (WriterT w m) where- writer = CPS.writer- tell = CPS.tell- listen = CPS.listen- pass = CPS.pass--instance MonadError e m => MonadError e (WriterT w m) where- throwError = lift . throwError- catchError = CPS.liftCatch catchError--instance MonadCont m => MonadCont (WriterT w m) where- callCC = CPS.liftCallCC callCC
+ src/Control/Monad/RWS/CPS.hs view
@@ -0,0 +1,79 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE UndecidableInstances #-}+-----------------------------------------------------------------------------+-- |+-- Module : Control.Monad.RWS.CPS+-- Copyright : (c) Daniel Mendler 2016,+-- (c) Andy Gill 2001,+-- (c) Oregon Graduate Institute of Science and Technology, 2001+-- License : BSD-style (see the file LICENSE)+--+-- Maintainer : mail@daniel-mendler.de+-- Stability : experimental+-- Portability : non-portable (multi-param classes, functional dependencies)+--+-- Stricter RWS monad using continuation-passing-style for the+-- writer output.+--+-- Inspired by the paper+-- /Functional Programming with Overloading and Higher-Order Polymorphism/,+-- Mark P Jones (<http://web.cecs.pdx.edu/~mpj/>)+-- Advanced School of Functional Programming, 1995.+-----------------------------------------------------------------------------++module Control.Monad.RWS.CPS (+ -- * The RWS monad+ RWS,+ rws,+ runRWS,+ evalRWS,+ execRWS,+ mapRWS,+ withRWS,+ -- * The RWST monad transformer+ RWST,+ runRWST,+ evalRWST,+ execRWST,+ mapRWST,+ withRWST,+ module X+) where++import Control.Monad as X+import Control.Monad.Fix as X+import Control.Monad.RWS.Class as X+import Control.Monad.Trans as X+import Data.Monoid as X++import Control.Monad.Cont.Class+import Control.Monad.Error.Class+import Control.Monad.Trans.RWS.CPS+import qualified Control.Monad.Trans.RWS.CPS as CPS++-- Orphan instances++instance (Monoid w, Monad m) => MonadWriter w (RWST r w s m) where+ writer = CPS.writer+ tell = CPS.tell+ listen = CPS.listen+ pass = CPS.pass++instance Monad m => MonadReader r (RWST r w s m) where+ ask = CPS.ask+ local = CPS.local+ reader = CPS.reader++instance Monad m => MonadState s (RWST r w s m) where+ get = CPS.get+ put = CPS.put+ state = CPS.state++instance MonadError e m => MonadError e (RWST r w s m) where+ throwError = lift . throwError+ catchError = CPS.liftCatch catchError++instance MonadCont m => MonadCont (RWST r w s m) where+ callCC = CPS.liftCallCC callCC
+ src/Control/Monad/Writer/CPS.hs view
@@ -0,0 +1,76 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE UndecidableInstances #-}+-----------------------------------------------------------------------------+-- |+-- Module : Control.Monad.Writer.CPS+-- Copyright : (c) Daniel Mendler 2016,+-- (c) Andy Gill 2001,+-- (c) Oregon Graduate Institute of Science and Technology, 2001+-- License : BSD-style (see the file LICENSE)+--+-- Maintainer : mail@daniel-mendler.de+-- Stability : experimental+-- Portability : non-portable (multi-param classes, functional dependencies)+--+-- Stricter writer monad using continuation-passing-style for the+-- writer output.+--+-- Inspired by the paper+-- /Functional Programming with Overloading and Higher-Order Polymorphism/,+-- Mark P Jones (<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>)+-- Advanced School of Functional Programming, 1995.+-----------------------------------------------------------------------------++module Control.Monad.Writer.CPS (+ -- * The Writer monad+ Writer,+ runWriter,+ execWriter,+ mapWriter,+ -- * The WriterT monad transformer+ WriterT,+ runWriterT,+ execWriterT,+ mapWriterT,+ module X+) where++import Control.Monad as X+import Control.Monad.Fix as X+import Control.Monad.Trans as X+import Control.Monad.Writer.Class as X+import Data.Monoid as X++import Control.Monad.State.Class+import Control.Monad.Reader.Class+import Control.Monad.Cont.Class+import Control.Monad.Error.Class+import Control.Monad.Trans.Writer.CPS+import qualified Control.Monad.Trans.Writer.CPS as CPS++-- Orphan instances++instance (Monad m, Monoid w) => MonadWriter w (WriterT w m) where+ writer = CPS.writer+ tell = CPS.tell+ listen = CPS.listen+ pass = CPS.pass++instance MonadError e m => MonadError e (WriterT w m) where+ throwError = lift . throwError+ catchError = CPS.liftCatch catchError++instance MonadCont m => MonadCont (WriterT w m) where+ callCC = CPS.liftCallCC callCC++instance (MonadReader r m, Monoid w) => MonadReader r (WriterT w m) where+ ask = lift ask+ local = CPS.mapWriterT . local+ reader = lift . reader++instance MonadState s m => MonadState s (WriterT w m) where+ get = lift get+ put = lift . put+ state = lift . state
writer-cps-mtl.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: writer-cps-mtl-version: 0.1.1.0+version: 0.1.1.1 cabal-version: >= 1.10 license: BSD3 license-file: LICENSE@@ -24,7 +24,7 @@ library hs-source-dirs:- .+ src ghc-options: -Wall build-depends: base < 6