comonads-fd 1.5.0.1 → 1.5.2.2
raw patch · 2 files changed
+97/−2 lines, 2 filesdep +mtldep ~comonad-transformersPVP ok
version bump matches the API change (PVP)
Dependencies added: mtl
Dependency ranges changed: comonad-transformers
API changes (from Hackage documentation)
+ Data.Lens: (!%%=) :: MonadState a m => Lens a b -> (b -> (c, b)) -> m c
+ Data.Lens: (!%=) :: MonadState a m => Lens a b -> (b -> b) -> m b
+ Data.Lens: (!&&=) :: MonadState a m => Lens a Bool -> Bool -> m Bool
+ Data.Lens: (!*=) :: (MonadState a m, Num b) => Lens a b -> b -> m b
+ Data.Lens: (!+=) :: (MonadState a m, Num b) => Lens a b -> b -> m b
+ Data.Lens: (!-=) :: (MonadState a m, Num b) => Lens a b -> b -> m b
+ Data.Lens: (!/=) :: (MonadState a m, Fractional b) => Lens a b -> b -> m b
+ Data.Lens: (!=) :: MonadState a m => Lens a b -> b -> m b
+ Data.Lens: (!||=) :: MonadState a m => Lens a Bool -> Bool -> m Bool
+ Data.Lens: (%%=) :: MonadState a m => Lens a b -> (b -> (c, b)) -> m c
+ Data.Lens: (%=) :: MonadState a m => Lens a b -> (b -> b) -> m b
+ Data.Lens: (&&=) :: MonadState a m => Lens a Bool -> Bool -> m Bool
+ Data.Lens: (*=) :: (MonadState a m, Num b) => Lens a b -> b -> m b
+ Data.Lens: (+=) :: (MonadState a m, Num b) => Lens a b -> b -> m b
+ Data.Lens: (-=) :: (MonadState a m, Num b) => Lens a b -> b -> m b
+ Data.Lens: (//=) :: (MonadState a m, Fractional b) => Lens a b -> b -> m b
+ Data.Lens: (||=) :: MonadState a m => Lens a Bool -> Bool -> m Bool
+ Data.Lens: (~=) :: MonadState a m => Lens a b -> b -> m b
+ Data.Lens: access :: MonadState a m => Lens a b -> m b
Files
- Data/Lens.hs +93/−0
- comonads-fd.cabal +4/−2
+ Data/Lens.hs view
@@ -0,0 +1,93 @@+module Data.Lens+ ( module Data.Lens.Common+ -- * State API+ , access -- getter -- :: MonadState a m => Lens a b -> m b+ , (~=), (!=) -- setter -- :: MonadState a m => Lens a b -> b -> m b+ , (%=), (!%=) -- modify -- :: MonadState a m => Lens a b -> (b -> b) -> m b+ , (%%=), (!%%=) -- modify -- :: MonadState a m => Lens a b -> (b -> (c, b)) -> m c+ , (+=), (!+=) -- modify -- :: (MonadState a m, Num b) => Lens a b -> b -> m b+ , (-=), (!-=) -- modify -- :: (MonadState a m, Num b) => Lens a b -> b -> m b+ , (*=), (!*=) -- modify -- :: (MonadState a m, Num b) => Lens a b -> b -> m b+ , (//=), (!/=) -- modify -- :: (MonadState a m, Fractional b) => Lens a b -> b -> m b+ , (&&=), (!&&=) -- modify -- :: MonadState a m => Lens a Bool -> Bool -> m Bool+ , (||=), (!||=) -- modify -- :: MonadState a m => Lens a Bool -> Bool -> m Bool+ ) where++import Control.Comonad.Trans.Store+import Control.Monad.State+import Data.Functor.Identity+import Data.Lens.Common++-- * State actions++-- | get the value of a lens into state+access :: MonadState a m => Lens a b -> m b+access (Lens f) = gets (pos . f)+{-# INLINE access #-}++infixr 4 ~=, !=++-- | set a value using a lens into state+(~=), (!=) :: MonadState a m => Lens a b -> b -> m b+Lens f ~= b = do+ modify (peek b . f)+ return b+Lens f != b = do+ StoreT (Identity h) _ <- gets f+ put (h $! b)+ return b++infixr 4 %=, !%=+ +-- | infix modification a value through a lens into state+(%=), (!%=) :: MonadState a m => Lens a b -> (b -> b) -> m b+Lens f %= g = do+ StoreT (Identity h) b <- gets f+ let b' = g b+ put (h b')+ return b'+Lens f !%= g = do+ StoreT (Identity h) b <- gets f+ let b' = g b+ b' `seq` put (h b')+ return b'++infixr 4 %%=, !%%=++-- | infix modification of a value through a lens into state+-- with a supplemental response+(%%=), (!%%=) :: MonadState a m => Lens a b -> (b -> (c, b)) -> m c+Lens f %%= g = do+ StoreT (Identity h) b <- gets f+ let (c, b') = g b+ put (h b')+ return c+Lens f !%%= g = do+ StoreT (Identity h) b <- gets f+ let (c, b') = g b+ b' `seq` put (h b')+ return c++infixr 4 +=, !+=, -=, !-=, *=, !*=++(+=), (!+=), (-=), (!-=), (*=), (!*=) :: (MonadState a m, Num b) => Lens a b -> b -> m b+f += b = f %= (+ b)+f -= b = f %= subtract b+f *= b = f %= (* b)+f !+= b = f !%= (+ b)+f !-= b = f !%= subtract b+f !*= b = f !%= (* b)++infixr 4 //=, !/=++(//=), (!/=) :: (MonadState a m, Fractional b) => Lens a b -> b -> m b+f //= b = f %= (/ b)+f !/= b = f !%= (/ b)++infixr 4 &&=, !&&=, ||=, !||=++(&&=), (||=), (!&&=), (!||=) :: MonadState a m => Lens a Bool -> Bool -> m Bool+f &&= b = f %= (&& b)+f ||= b = f %= (|| b)+f !&&= b = f !%= (&& b)+f !||= b = f !%= (|| b)
comonads-fd.cabal view
@@ -1,6 +1,6 @@ name: comonads-fd category: Control, Comonads-version: 1.5.0.1+version: 1.5.2.2 license: BSD3 cabal-version: >= 1.6 license-file: LICENSE@@ -21,9 +21,10 @@ build-depends: base >= 4 && < 4.4, transformers >= 0.2 && < 0.3,+ mtl >= 2.0.1.0 && <= 2.1, semigroups >= 0.3.4 && < 0.4, comonad >= 1.0.1 && < 1.1,- comonad-transformers >= 1.5.0.1 && < 1.6+ comonad-transformers >= 1.5.2.2 && < 1.6 exposed-modules: Control.Comonad.Discont@@ -45,6 +46,7 @@ Control.Comonad.Traced Control.Comonad.Traced.Class Control.Comonad.Traced.Memo+ Data.Lens ghc-options: -Wall