packages feed

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