validity-containers 0.3.1.0 → 0.4.0.0
raw patch · 3 files changed
+40/−17 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Data.Validity.Map: instance (GHC.Classes.Ord k, Data.Validity.Validity k, Data.Validity.Validity v) => Data.Validity.Validity (Data.Map.Internal.Map k v)
+ Data.Validity.Map: decorateMap :: Show k => Map k v -> (k -> v -> Validation) -> Validation
+ Data.Validity.Map: instance (GHC.Show.Show k, GHC.Classes.Ord k, Data.Validity.Validity k, Data.Validity.Validity v) => Data.Validity.Validity (Data.Map.Internal.Map k v)
Files
- CHANGELOG.md +12/−0
- src/Data/Validity/Map.hs +15/−7
- validity-containers.cabal +13/−10
+ CHANGELOG.md view
@@ -0,0 +1,12 @@+# Changelog++## [0.5.0.0] - 2019-09-23++### Added++* `decorateMap`++### Changed++* The validity instance for maps now requires that keys are `Show`able.+
src/Data/Validity/Map.hs view
@@ -1,6 +1,8 @@ {-# OPTIONS_GHC -fno-warn-orphans #-} -module Data.Validity.Map where+module Data.Validity.Map+ ( decorateMap+ ) where import Data.Validity @@ -9,9 +11,15 @@ -- | A 'Map' of things is valid if all the keys and values are valid and the 'Map' itself -- is valid.-instance (Ord k, Validity k, Validity v) => Validity (Map k v) where- validate m =- mconcat- [ declare "The Map structure is valid." $ M.valid m- , delve "Map elements" $ M.toList m- ]+instance (Show k, Ord k, Validity k, Validity v) => Validity (Map k v) where+ validate m =+ mconcat+ [ declare "The Map structure is valid." $ M.valid m+ , decorate "Map elements" $+ decorateMap m $ \k v -> mconcat [delve "The key" k, delve "The value" v]+ ]++decorateMap :: Show k => Map k v -> (k -> v -> Validation) -> Validation+decorateMap m func = M.foldMapWithKey go m+ where+ go k v = decorate ("The key/value at key " <> show k) $ func k v
validity-containers.cabal view
@@ -1,11 +1,13 @@--- This file has been generated from package.yaml by hpack version 0.28.2.+cabal-version: 1.12++-- This file has been generated from package.yaml by hpack version 0.31.2. -- -- see: https://github.com/sol/hpack ----- hash: 77cb2b975040064ad6346e213a7a6f93161985fcb67d7b8949aa00fcd8f9617d+-- hash: 7745ecc88d5b340b3fdd71d06719f881d41ce168cf2e676e25bc38ea6f1ccd81 name: validity-containers-version: 0.3.1.0+version: 0.4.0.0 synopsis: Validity instances for containers description: Please see README.md category: Validity@@ -18,19 +20,14 @@ license: MIT license-file: LICENSE build-type: Simple-cabal-version: >= 1.10+extra-source-files:+ CHANGELOG.md source-repository head type: git location: https://github.com/NorfairKing/validity library- hs-source-dirs:- src- build-depends:- base >=4.7 && <5- , containers- , validity >=0.5 exposed-modules: Data.Validity.Containers Data.Validity.Tree@@ -39,4 +36,10 @@ Data.Validity.Set other-modules: Paths_validity_containers+ hs-source-dirs:+ src+ build-depends:+ base >=4.7 && <5+ , containers+ , validity >=0.5 default-language: Haskell2010