@@ -21,9 +21,11 @@ module Data.Generics.Internal.Families.Has
21 , HasCtorP
21 , HasCtorP
24−import Data.Type.Bool (type (||), type (&&))
25import GHC.Generics
24import GHC.Generics
26+import Data.Type.Bool (type (||), type (&&))
27+import Data.Type.Equality (type (==))
26−import GHC.TypeLits
28+import GHC.TypeLits (Symbol, TypeError, ErrorMessage (..))
28import Data.Generics.Internal.HList
30import Data.Generics.Internal.HList
@@ -81,14 +83,10 @@ type family HasPartialTypeTupleP a f :: Bool where
81 HasPartialTypeTupleP t (l :+: r)
83 HasPartialTypeTupleP t (l :+: r)
82 = HasPartialTypeTupleP t l || HasPartialTypeTupleP t r
84 = HasPartialTypeTupleP t l || HasPartialTypeTupleP t r
83 HasPartialTypeTupleP t (C1 m f)
85 HasPartialTypeTupleP t (C1 m f)
84− = Equals t (ListToTuple (GCollect f))
86+ = t == ListToTuple (GCollect f)
85 HasPartialTypeTupleP t _
87 HasPartialTypeTupleP t _
88−type family Equals a b where
92type family HasCtorP (ctor :: Symbol) f :: Bool where
90type family HasCtorP (ctor :: Symbol) f :: Bool where
93 HasCtorP ctor (C1 ('MetaCons ctor _ _) _)
91 HasCtorP ctor (C1 ('MetaCons ctor _ _) _)