parameterized 0.4.0.0 → 0.5.0.0
raw patch · 3 files changed
+19/−16 lines, 3 filesdep ~data-diverse
Dependency ranges changed: data-diverse
Files
- README.md +4/−1
- parameterized.cabal +3/−3
- src/Parameterized/Control/Monad/Trans/State/Strict.hs +12/−12
README.md view
@@ -7,13 +7,16 @@ # Changelog +* 0.5.0.0+ - Support data-diverse-2.0.0.0.+ * 0.4.0.0 - Added PNullary and PUnary injective type families. * 0.3.0.0 - PMonoid is now a class with a single instance (courtesy of georgew). - added fixities for backtick versions of pmappend, pappend, papply and pbind- - added changingState constructor which results in better type inference.+ - added changingState constructor which sults in better type inference. * 0.2.0.0 - Renamed Pempty to PEmpty.
parameterized.cabal view
@@ -1,5 +1,5 @@ name: parameterized-version: 0.4.0.0+version: 0.5.0.0 synopsis: Parameterized/indexed monoids and monads using only a single parameter type variable. description: Parameterized/indexed monoids and monads using only a single parameter type variable. @@ -25,7 +25,7 @@ Parameterized.Control.Monad.Trans.Reader Parameterized.Control.Monad.Trans.State.Strict build-depends: base >= 4.7 && < 5- , data-diverse >= 1.2.0.3+ , data-diverse >= 2.0.0.0 , transformers >= 0.5.2.0 ghc-options: -Wall default-language: Haskell2010@@ -39,7 +39,7 @@ build-depends: base , parameterized , hspec >= 2- , data-diverse >= 1.2.0.3+ , data-diverse >= 2.0.0.0 , transformers >= 0.5.2.0 ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall default-language: Haskell2010
src/Parameterized/Control/Monad/Trans/State/Strict.hs view
@@ -49,25 +49,25 @@ instance ( Monad m , Select a c , Select b c- , Amend a c- , Amend b c+ , Amend' a c+ , Amend' b c , c ~ AppendUnique a b ) => PApplicative (ManyState m) (Many a) (Many b) (Many c) where papply (ManyState (StateT x)) (ManyState (StateT y)) = ManyState . StateT $ \c -> do (f, a) <- x (select c)- let c' = amend c a+ let c' = amend' c a (r, b) <- y (select c')- let c'' = amend c' b+ let c'' = amend' c' b pure (f r, c'') instance ( Monad m , Alternative m , Select a c , Select b c- , Amend a c- , Amend b c+ , Amend' a c+ , Amend' b c , c ~ AppendUnique a b ) => PAlternative (ManyState m) (Many a) (Many b) (Many c) where@@ -76,26 +76,26 @@ where x' c = do (r, a) <- x (select c)- pure (r, amend c a)+ pure (r, amend' c a) y' c = do (r, b) <- y (select c)- pure (r, amend c b)+ pure (r, amend' c b) instance ( Monad m , Select a c , Select b c- , Amend a c- , Amend b c+ , Amend' a c+ , Amend' b c , c ~ AppendUnique a b ) => PMonad (ManyState m) (Many a) (Many b) (Many c) where pbind (ManyState (StateT x)) k = ManyState . StateT $ \c -> do (r, a) <- x (select c)- let c' = amend c a+ let c' = amend' c a ManyState (StateT y) = k r (r', b) <- y (select c')- let c'' = amend c' b+ let c'' = amend' c' b pure (r', c'') --------------------------------------------