@@ -35,6 +35,8 @@ module Data.Generics.Product.Types
3535 ) where
3636
3737import Data.Kind
38+import Data.Int (Int8, Int16, Int32, Int64)
39+import Data.Word (Word, Word8, Word16, Word32, Word64)
3840
3941import GHC.Generics
4042import Data.Generics.Internal.VL.Traversal
@@ -76,9 +78,18 @@ instance {-# OVERLAPPING #-} HasTypes Bool a
7678instance {-# OVERLAPPING #-} HasTypes Char a
7779instance {-# OVERLAPPING #-} HasTypes Double a
7880instance {-# OVERLAPPING #-} HasTypes Float a
79−instance {-# OVERLAPPING #-} HasTypes Int a
8081instance {-# OVERLAPPING #-} HasTypes Integer a
8182instance {-# OVERLAPPING #-} HasTypes Ordering a
83+instance {-# OVERLAPPING #-} HasTypes Int a
84+instance {-# OVERLAPPING #-} HasTypes Int8 a
85+instance {-# OVERLAPPING #-} HasTypes Int16 a
86+instance {-# OVERLAPPING #-} HasTypes Int32 a
87+instance {-# OVERLAPPING #-} HasTypes Int64 a
88+instance {-# OVERLAPPING #-} HasTypes Word a
89+instance {-# OVERLAPPING #-} HasTypes Word8 a
90+instance {-# OVERLAPPING #-} HasTypes Word16 a
91+instance {-# OVERLAPPING #-} HasTypes Word32 a
92+instance {-# OVERLAPPING #-} HasTypes Word64 a
8293
8394--------------------------------------------------------------------------------
8495
@@ -135,8 +146,17 @@ type family Interesting' f (a :: Type) (seen :: [Type]) :: ([Type], Bool) where
135146 Interesting' (Rec0 Char) _ seen = '(seen ,'False)
136147 Interesting' (Rec0 Double) _ seen = '(seen ,'False)
137148 Interesting' (Rec0 Float) _ seen = '(seen ,'False)
138− Interesting' (Rec0 Int) _ seen = '(seen ,'False)
139149 Interesting' (Rec0 Integer) _ seen = '(seen ,'False)
150+ Interesting' (Rec0 Int) _ seen = '(seen ,'False)
151+ Interesting' (Rec0 Int8) _ seen = '(seen ,'False)
152+ Interesting' (Rec0 Int16) _ seen = '(seen ,'False)
153+ Interesting' (Rec0 Int32) _ seen = '(seen ,'False)
154+ Interesting' (Rec0 Int64) _ seen = '(seen ,'False)
155+ Interesting' (Rec0 Word) _ seen = '(seen ,'False)
156+ Interesting' (Rec0 Word8) _ seen = '(seen ,'False)
157+ Interesting' (Rec0 Word16) _ seen = '(seen ,'False)
158+ Interesting' (Rec0 Word32) _ seen = '(seen ,'False)
159+ Interesting' (Rec0 Word64) _ seen = '(seen ,'False)
140160 Interesting' (Rec0 r) t seen
141161 = InterestingUnless (Elem r seen) (Rep r) t r seen
142162 Interesting' _ _ seen