{-# OPTIONS_GHC -Wno-orphans #-} {-# OPTIONS_GHC -Wno-redundant-constraints #-} module Data.GenValidity.HashMap where import Data.GenValidity import Data.HashMap.Strict (HashMap) import qualified Data.HashMap.Strict as HM import Data.Hashable (Hashable) import Data.Validity.HashMap () instance (Hashable k, Eq k, GenValid k, GenValid v) => GenValid (HashMap k v) where genValid :: Gen (HashMap k v) genValid = forall k v. (Eq k, Hashable k) => [(k, v)] -> HashMap k v HM.fromList forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall a. GenValid a => Gen a genValid shrinkValid :: HashMap k v -> [HashMap k v] shrinkValid = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap forall k v. (Eq k, Hashable k) => [(k, v)] -> HashMap k v HM.fromList forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. GenValid a => a -> [a] shrinkValid forall b c a. (b -> c) -> (a -> b) -> a -> c . forall k v. HashMap k v -> [(k, v)] HM.toList