packages feed

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