changeset-containers 0.1.0.3 → 0.1.1
raw patch · 7 files changed
+60/−14 lines, 7 filesdep ~changesetdep ~monoid-extrasPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: changeset, monoid-extras
API changes (from Hackage documentation)
- Data.Monoid.RightAction.Map: instance (GHC.Read.Read a, GHC.Read.Read k) => GHC.Read.Read (Data.Monoid.RightAction.Map.MapChange k a)
- Data.Monoid.RightAction.Set: instance GHC.Read.Read k => GHC.Read.Read (Data.Monoid.RightAction.Set.SetChange k)
+ Data.Monoid.RightAction.IntMap: instance GHC.Generics.Generic (Data.Monoid.RightAction.IntMap.IntMapChange a)
+ Data.Monoid.RightAction.IntSet: instance GHC.Generics.Generic Data.Monoid.RightAction.IntSet.IntSetChange
+ Data.Monoid.RightAction.Map: RestrictKeys :: Set k -> MapChange k a
+ Data.Monoid.RightAction.Map: WithoutKeys :: Set k -> MapChange k a
+ Data.Monoid.RightAction.Map: instance (GHC.Read.Read a, GHC.Read.Read k, GHC.Classes.Ord k) => GHC.Read.Read (Data.Monoid.RightAction.Map.MapChange k a)
+ Data.Monoid.RightAction.Map: instance GHC.Generics.Generic (Data.Monoid.RightAction.Map.MapChange k a)
+ Data.Monoid.RightAction.Sequence: instance GHC.Generics.Generic (Data.Monoid.RightAction.Sequence.SeqChange a)
+ Data.Monoid.RightAction.Set: Difference :: Set k -> SetChange k
+ Data.Monoid.RightAction.Set: Intersection :: Set k -> SetChange k
+ Data.Monoid.RightAction.Set: Union :: Set k -> SetChange k
+ Data.Monoid.RightAction.Set: instance (GHC.Read.Read k, GHC.Classes.Ord k) => GHC.Read.Read (Data.Monoid.RightAction.Set.SetChange k)
+ Data.Monoid.RightAction.Set: instance GHC.Generics.Generic (Data.Monoid.RightAction.Set.SetChange k)
Files
- CHANGELOG.md +2/−2
- changeset-containers.cabal +6/−3
- src/Data/Monoid/RightAction/IntMap.hs +8/−1
- src/Data/Monoid/RightAction/IntSet.hs +4/−1
- src/Data/Monoid/RightAction/Map.hs +17/−3
- src/Data/Monoid/RightAction/Sequence.hs +12/−2
- src/Data/Monoid/RightAction/Set.hs +11/−2
CHANGELOG.md view
@@ -1,5 +1,5 @@ # Revision history for changeset -## 0.1.0.0 -- YYYY-mm-dd+## 0.1.1 -* First version. Released on an unsuspecting world.+* Add `RestrictKeys` and `WithoutKeys` changes
changeset-containers.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: changeset-containers-version: 0.1.0.3+version: 0.1.1 synopsis: Stateful monad transformer based on monoidal actions description: A general state monad transformer with separate types for the state and the possible changes.@@ -37,6 +37,8 @@ default-extensions: BangPatterns DeriveFunctor+ DeriveGeneric+ DerivingStrategies FlexibleInstances FunctionalDependencies GADTs@@ -45,6 +47,7 @@ NamedFieldPuns RankNTypes ScopedTypeVariables+ StrictData TupleSections TypeOperators @@ -59,9 +62,9 @@ build-depends: base >=4.12 && <4.22,- changeset ==0.1.0.3,+ changeset ==0.1.1, containers >=0.6 && <0.8,- monoid-extras ^>=0.6,+ monoid-extras ^>=0.7, hs-source-dirs: src default-language: Haskell2010
src/Data/Monoid/RightAction/IntMap.hs view
@@ -1,5 +1,8 @@ module Data.Monoid.RightAction.IntMap where +-- base+import GHC.Generics (Generic)+ -- containers import Data.IntMap @@ -9,11 +12,15 @@ {- | Insert or delete an element in an 'IntMap'. To change an element in an 'IntMap', see the indexed changes in [@changeset-lens@](hackage.haskell.org/package/changeset-lens).++The general purpose changes t'Control.Monad.Trans.Changeset.FilterableChange',+t'Control.Monad.Trans.Changeset.FilterableChanges', t'Control.Monad.Trans.Changeset.FilterableWithIndexChanges',+and t'Control.Monad.Trans.Changeset.AlignChanges' also apply to 'IntMap's. -} data IntMapChange a = Insert Int a | Delete Int- deriving (Show, Read, Eq, Ord, Functor)+ deriving stock (Show, Read, Eq, Ord, Functor, Generic) instance RightAction (IntMapChange a) (IntMap a) where actRight m (Insert k a) = insert k a m
src/Data/Monoid/RightAction/IntSet.hs view
@@ -1,5 +1,8 @@ module Data.Monoid.RightAction.IntSet where +-- base+import GHC.Generics (Generic)+ -- containers import Data.IntSet @@ -10,7 +13,7 @@ data IntSetChange = Insert Int | Delete Int- deriving (Show, Read, Eq, Ord)+ deriving stock (Show, Read, Eq, Ord, Generic) instance RightAction IntSetChange IntSet where actRight s (Insert k) = insert k s
src/Data/Monoid/RightAction/Map.hs view
@@ -1,20 +1,34 @@ module Data.Monoid.RightAction.Map where +-- base+import GHC.Generics (Generic)+ -- containers import Data.Map+import Data.Set (Set) -- changeset import Data.Monoid.RightAction (RightAction (..)) -{- | Insert or delete an element in a 'Map'.+{- | Insert or delete an element in a 'Map',+or restrict or delete the keys. -To change an element in an 'Map', see the indexed changes in [@changeset-lens@](hackage.haskell.org/package/changeset-lens).+To change an element in an 'Map', see the indexed changes in [@changeset-lens@](hackage.haskell.org/package/changeset-lens),+or t'Control.Monad.Trans.Changeset.ImapChange'.++The general purpose changes t'Control.Monad.Trans.Changeset.FilterableChange',+t'Control.Monad.Trans.Changeset.FilterableChanges', t'Control.Monad.Trans.Changeset.FilterableWithIndexChanges',+and t'Control.Monad.Trans.Changeset.AlignChanges' also apply to 'Map's. -} data MapChange k a = Insert k a | Delete k- deriving (Show, Read, Eq, Ord, Functor)+ | RestrictKeys (Set k)+ | WithoutKeys (Set k)+ deriving stock (Show, Read, Eq, Ord, Functor, Generic) instance (Ord k) => RightAction (MapChange k a) (Map k a) where actRight m (Insert k a) = insert k a m actRight m (Delete k) = delete k m+ actRight m (RestrictKeys ks) = restrictKeys m ks+ actRight m (WithoutKeys ks) = withoutKeys m ks
src/Data/Monoid/RightAction/Sequence.hs view
@@ -1,11 +1,21 @@ module Data.Monoid.RightAction.Sequence where -import Data.Monoid.RightAction (RightAction (..))+-- base+import GHC.Generics (Generic)++-- containers import Data.Sequence +-- changeset+import Data.Monoid.RightAction (RightAction (..))+ {- | Insert or delete an element at either end of a 'Seq'. To change an element in a 'Seq', see the indexed changes in [@changeset-lens@](hackage.haskell.org/package/changeset-lens).++The general purpose changes t'Control.Monad.Trans.Changeset.FilterableChange',+t'Control.Monad.Trans.Changeset.FilterableChanges', t'Control.Monad.Trans.Changeset.FilterableWithIndexChanges',+and t'Control.Monad.Trans.Changeset.AlignChanges' also apply to 'Seq'uences. -} data SeqChange a = -- | Prepend an element@@ -16,7 +26,7 @@ Uncons | -- | Drop an element from the right Unsnoc- deriving (Show, Read, Eq, Ord, Functor)+ deriving stock (Show, Read, Eq, Ord, Functor, Generic) instance RightAction (SeqChange a) (Seq a) where actRight s (Cons a) = a <| s
src/Data/Monoid/RightAction/Set.hs view
@@ -1,17 +1,26 @@ module Data.Monoid.RightAction.Set where +-- base+import GHC.Generics (Generic)+ -- containers import Data.Set -- changeset import Data.Monoid.RightAction (RightAction (..)) --- | Insert or delete an element in a 'Set'.+-- | Insert or delete an element in a 'Set', or calculate the intersection, union, or difference with another set. data SetChange k = Insert k | Delete k- deriving (Show, Read, Eq, Ord)+ | Intersection (Set k)+ | Union (Set k)+ | Difference (Set k)+ deriving stock (Show, Read, Eq, Ord, Generic) instance (Ord k) => RightAction (SetChange k) (Set k) where actRight s (Insert k) = insert k s actRight s (Delete k) = delete k s+ actRight s1 (Intersection s2) = intersection s1 s2+ actRight s1 (Union s2) = s1 `union` s2+ actRight s1 (Difference s2) = difference s1 s2