{-# OPTIONS_GHC -fno-warn-orphans #-} module Data.Validity.HashMap where import Data.Validity import Data.Hashable (Hashable) import Data.HashMap.Strict (HashMap) import qualified Data.HashMap.Strict as HM -- | A 'HashMap' of things is valid if all the keys and values are valid. -- -- The 'unordered-containers' package does not export any more functionality -- concerning a 'HashMap', so no more accurate validity instance can be made. instance (Hashable k, Validity k, Validity v) => Validity (HashMap k v) where isValid m = all isValid (HM.toList m) validate m = HM.toList m "HashMap elements"