{-# OPTIONS_GHC -fno-warn-orphans #-} module Data.Validity.Map where import Data.Validity import Data.Map (Map) import qualified Data.Map as M -- | 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 ]