66{-# LANGUAGE PatternGuards #-}
77{-# LANGUAGE RoleAnnotations #-}
88{-# LANGUAGE ScopedTypeVariables #-}
9+ {-# LANGUAGE StandaloneDeriving #-}
10+ {-# LANGUAGE TemplateHaskellQuotes #-}
911{-# LANGUAGE TypeFamilies #-}
1012{-# LANGUAGE UnboxedTuples #-}
1113#if __GLASGOW_HASKELL__ >= 802
@@ -192,11 +194,19 @@ hash :: H.Hashable a => a -> Hash
192194hash = fromIntegral . H. hash
193195
194196data Leaf k v = L ! k v
195- deriving (Eq , TH.Lift )
197+ deriving (Eq )
196198
197199instance (NFData k , NFData v ) => NFData (Leaf k v ) where
198200 rnf (L k v) = rnf k `seq` rnf v
199201
202+ -- | @since 0.2.17.0
203+ instance (TH. Lift k , TH. Lift v ) => TH. Lift (Leaf k v ) where
204+ #if MIN_VERSION_template_haskell(2,16,0)
205+ liftTyped (L k v) = [|| L k $! v || ]
206+ #else
207+ lift (L k v) = [| L k $! v | ]
208+ #endif
209+
200210#if MIN_VERSION_deepseq(1,4,3)
201211-- | @since 0.2.14.0
202212instance NFData k => NF. NFData1 (Leaf k ) where
@@ -218,10 +228,12 @@ data HashMap k v
218228 | Leaf ! Hash ! (Leaf k v )
219229 | Full ! (A. Array (HashMap k v ))
220230 | Collision ! Hash ! (A. Array (Leaf k v ))
221- deriving (TH.Lift )
222231
223232type role HashMap nominal representational
224233
234+ -- | @since 0.2.17.0
235+ deriving instance (TH. Lift k , TH. Lift v ) => TH. Lift (HashMap k v )
236+
225237instance (NFData k , NFData v ) => NFData (HashMap k v ) where
226238 rnf Empty = ()
227239 rnf (BitmapIndexed _ ary) = rnf ary
0 commit comments