packages feed

mtl-unleashed 0.3.1 → 0.3.2

raw patch · 3 files changed

+10/−8 lines, 3 filesdep ~lens

Dependency ranges changed: lens

Files

Control/Monad/States.hs view
@@ -10,13 +10,14 @@     , Control.Monad.States.use, Control.Monad.States.iuse, Control.Monad.States.uses, Control.Monad.States.iuses     ) where -import qualified Control.Lens as Lens (Optical, view, views)+import qualified Control.Lens as Lens (view, views) import Control.Lens hiding (view, views, iview, iviews, uses) import Control.Monad.Readers import Control.Monad.State hiding (MonadState(get, put, state), modify, modify', gets) import qualified Control.Monad.State as MTL (get, put) import Control.Monad.Writer (WriterT)-import Data.Profunctor.Unsafe ((#.), (.#))+import Data.Monoid (Monoid)+import Data.Profunctor.Unsafe ((#.))  -- | Copy of 'Control.Monad.State.MonadState' with functional dependency m -> s removed. class Monad m => MonadStates s m where@@ -63,8 +64,8 @@ iuse :: MonadStates s m => IndexedGetting i (i,a) s a -> m (i,a) iuse l = Control.Monad.States.gets (getConst #. l (Indexed $ \i -> Const #. (,) i)) -uses :: (Profunctor p, MonadStates s m) => Lens.Optical p (->) (Const r) s s a a -> p a r -> m r+uses :: MonadStates s m => LensLike' (Const r) s a -> (a -> r) -> m r uses l f = Control.Monad.States.gets (Lens.views l f)  iuses :: MonadStates s m => IndexedGetting i r s a -> (i -> a -> r) -> m r-iuses l = uses l .# Indexed+iuses l f = Control.Monad.States.gets (getConst #. l (Const #. Indexed f))
Tests/Main.hs view
@@ -6,6 +6,7 @@ {-# LANGUAGE TemplateHaskell #-} module Main where +import Control.Applicative import Control.Lens as Lens import Control.Monad.Readers as Readers import Control.Monad.States as States@@ -51,7 +52,7 @@  -- This is where the advantages of MonadReaders start to appear: -- use two different MonadReaders instances for the same monad.-s1t1 :: (MonadReaders S m, MonadReaders T m) => m (Float, Int)+s1t1 :: (Applicative m, Functor m, MonadReaders S m, MonadReaders T m) => m (Float, Int) s1t1 = (,) <$> Readers.view s1 <*> Readers.view t1  tests :: SpecM () ()
mtl-unleashed.cabal view
@@ -1,5 +1,5 @@ name:               mtl-unleashed-version:            0.3.1+version:            0.3.2 cabal-version:      >= 1.10 build-type:         Simple license:            BSD3@@ -19,7 +19,7 @@   extra type signatures.  library-  build-depends: base < 5, lens, mtl, contravariant, profunctors, tagged+  build-depends: base < 5, lens >= 4.13, mtl, contravariant, profunctors, tagged   ghc-options: -Wall -O2   exposed-modules:     Control.Monad.Readers@@ -30,7 +30,7 @@   type:             exitcode-stdio-1.0   hs-source-dirs:   Tests   main-is:          Main.hs-  build-depends:    base, hspec, hspec-core, lens, mtl, mtl-unleashed, contravariant, profunctors+  build-depends:    base, hspec, hspec-core, lens >= 4.13, mtl, mtl-unleashed, contravariant, profunctors   default-language: Haskell2010  source-repository head