hreader 0.0.1 → 0.0.2
raw patch · 4 files changed
+30/−6 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Control.Monad.HReader: runUnversalT :: HSet els -> HReaderT els m a -> m a
+ Control.Monad.HReader: runHReaderT :: HSet els -> HReaderT els m a -> m a
Files
- CHANGELOG.md +3/−0
- hreader.cabal +1/−1
- src/Control/Monad/HReader.hs +13/−4
- src/Control/Monad/HReader/Class.hs +13/−1
CHANGELOG.md view
@@ -1,4 +1,7 @@ # CHANGELOG +## 0.0.2+Make it compilable on base-4.7+ ## 0.0.1 First working version
hreader.cabal view
@@ -1,5 +1,5 @@ name: hreader-version: 0.0.1+version: 0.0.2 synopsis: Generalization of MonadReader and ReaderT license: BSD3 license-file: LICENSE
src/Control/Monad/HReader.hs view
@@ -1,4 +1,8 @@-module Control.Monad.HReader where+module Control.Monad.HReader+ ( HReaderT(..)+ , runHReaderT+ , module Control.Monad.HReader.Class+ ) where import Control.Monad.Base import Control.Monad.Catch@@ -19,6 +23,11 @@ import Control.Monad.Error #endif +#if !(MIN_VERSION_base(4,8,0))+import Control.Applicative+#endif++ newtype HReaderT els m a = HReaderT { unHReaderT :: ReaderT (HSet els) m a } deriving ( Functor, Applicative, Monad, MonadIO@@ -27,8 +36,8 @@ , MonadThrow, MonadCatch , Typeable, Generic ) -runUnversalT :: HSet els -> HReaderT els m a -> m a-runUnversalT h (HReaderT r) = runReaderT r h+runHReaderT :: HSet els -> HReaderT els m a -> m a+runHReaderT h (HReaderT r) = runReaderT r h instance MonadTrans (HReaderT els) where lift = HReaderT . lift@@ -38,7 +47,7 @@ local f ma = HReaderT $ do h <- ask lift $ do- local f $ runUnversalT h ma+ local f $ runHReaderT h ma instance (Monad m) => MonadHReader (HReaderT els m) where type HSetElements (HReaderT els m) = els
src/Control/Monad/HReader/Class.hs view
@@ -1,5 +1,10 @@-module Control.Monad.HReader.Class where+module Control.Monad.HReader.Class+ ( MonadHReader(..)+ , haskM+ , haskLabeledM+ ) where + import Control.Monad.Cont import Control.Monad.List import Control.Monad.Reader@@ -9,6 +14,12 @@ import Control.Monad.Except #endif +#if !(MIN_VERSION_base(4,8,0))+import Control.Applicative+import Data.Monoid+#endif++ import qualified Control.Monad.RWS.Lazy as RWSL import qualified Control.Monad.RWS.Strict as RWSS import qualified Control.Monad.State.Lazy as SL@@ -17,6 +28,7 @@ import qualified Control.Monad.Writer.Strict as WS +-- | Monad which is a reader of HSet (or just can construct it). #if MIN_VERSION_base(4, 8, 0) class (Monad m) => MonadHReader m where #else