@@ -53,15 +53,20 @@ import qualified GHC.Exts as Exts
53import Control.DeepSeq
53import Control.DeepSeq
54import qualified Data.HashMap.Strict as M
54import qualified Data.HashMap.Strict as M
55import Data.Hashable (Hashable)
55import Data.Hashable (Hashable)
56+#if MIN_VERSION_unordered_containers(0,2,8)
56import Data.Hashable.Lifted (Hashable1)
57import Data.Hashable.Lifted (Hashable1)
57import Control.Lens
59import Control.Lens
58import Control.Newtype
60import Control.Newtype
60-- | A 'HashMap' with monoidal accumulation
62-- | A 'HashMap' with monoidal accumulation
61newtype MonoidalHashMap k a = MonoidalHashMap { getMonoidalHashMap :: M.HashMap k a }
63newtype MonoidalHashMap k a = MonoidalHashMap { getMonoidalHashMap :: M.HashMap k a }
62− deriving (Show, Read, Functor, Eq, NFData,
64+ deriving ( Show, Read, Functor, Eq, NFData
63− Foldable, Traversable,
65+ , Foldable, Traversable, Data, Typeable, Hashable
66+#if MIN_VERSION_unordered_containers(0,2,8)
64− Data, Typeable, Hashable1, Hashable)
67+ , Hashable1
66type instance Index (MonoidalHashMap k a) = k
71type instance Index (MonoidalHashMap k a) = k
67type instance IxValue (MonoidalHashMap k a) = a
72type instance IxValue (MonoidalHashMap k a) = a