packages feed

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
@@ -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