@@ -146,7 +146,7 @@ import Data.Word (Word)
146
146
#if __GLASGOW_HASKELL__ >= 711
147
147
import Data.Semigroup (Semigroup ((<>) ))
148
148
#endif
149
- import Control.DeepSeq (NFData (rnf ), NFData2 ( liftRnf2 ), NFData1 ( liftRnf ) )
149
+ import Control.DeepSeq (NFData (rnf ))
150
150
import Control.Monad.ST (ST )
151
151
import Data.Bits ((.&.) , (.|.) , complement , popCount , unsafeShiftL , unsafeShiftR )
152
152
import Data.Data hiding (Typeable )
@@ -178,6 +178,10 @@ import GHC.Stack
178
178
import qualified Data.Hashable.Lifted as H
179
179
#endif
180
180
181
+ #if MIN_VERSION_deepseq(1,4,3)
182
+ import qualified Control.DeepSeq as NF
183
+ #endif
184
+
181
185
#if __GLASGOW_HASKELL__ >= 802
182
186
import GHC.Exts (TYPE , Int (.. ), Int #)
183
187
#endif
@@ -201,11 +205,13 @@ data Leaf k v = L !k v
201
205
instance (NFData k , NFData v ) => NFData (Leaf k v ) where
202
206
rnf (L k v) = rnf k `seq` rnf v
203
207
204
- instance NFData k => NFData1 (Leaf k ) where
205
- liftRnf rnf2 = liftRnf2 rnf rnf2
208
+ #if MIN_VERSION_deepseq(1,4,3)
209
+ instance NFData k => NF. NFData1 (Leaf k ) where
210
+ liftRnf rnf2 = NF. liftRnf2 rnf rnf2
206
211
207
- instance NFData2 Leaf where
212
+ instance NF. NFData2 Leaf where
208
213
liftRnf2 rnf1 rnf2 (L k v) = rnf1 k `seq` rnf2 v
214
+ #endif
209
215
210
216
-- Invariant: The length of the 1st argument to 'Full' is
211
217
-- 2^bitsPerSubkey
@@ -229,15 +235,17 @@ instance (NFData k, NFData v) => NFData (HashMap k v) where
229
235
rnf (Full ary) = rnf ary
230
236
rnf (Collision _ ary) = rnf ary
231
237
232
- instance NFData k => NFData1 (HashMap k ) where
233
- liftRnf rnf2 = liftRnf2 rnf rnf2
238
+ #if MIN_VERSION_deepseq(1,4,3)
239
+ instance NFData k => NF. NFData1 (HashMap k ) where
240
+ liftRnf rnf2 = NF. liftRnf2 rnf rnf2
234
241
235
- instance NFData2 HashMap where
242
+ instance NF. NFData2 HashMap where
236
243
liftRnf2 _ _ Empty = ()
237
- liftRnf2 rnf1 rnf2 (BitmapIndexed _ ary) = liftRnf (liftRnf2 rnf1 rnf2) ary
238
- liftRnf2 rnf1 rnf2 (Leaf _ l) = liftRnf2 rnf1 rnf2 l
239
- liftRnf2 rnf1 rnf2 (Full ary) = liftRnf (liftRnf2 rnf1 rnf2) ary
240
- liftRnf2 rnf1 rnf2 (Collision _ ary) = liftRnf (liftRnf2 rnf1 rnf2) ary
244
+ liftRnf2 rnf1 rnf2 (BitmapIndexed _ ary) = NF. liftRnf (NF. liftRnf2 rnf1 rnf2) ary
245
+ liftRnf2 rnf1 rnf2 (Leaf _ l) = NF. liftRnf2 rnf1 rnf2 l
246
+ liftRnf2 rnf1 rnf2 (Full ary) = NF. liftRnf (NF. liftRnf2 rnf1 rnf2) ary
247
+ liftRnf2 rnf1 rnf2 (Collision _ ary) = NF. liftRnf (NF. liftRnf2 rnf1 rnf2) ary
248
+ #endif
241
249
242
250
instance Functor (HashMap k ) where
243
251
fmap = map
0 commit comments