Singletons/T410.hs:(0,0)-(0,0): Splicing declarations promote [d| class Eq a where equals :: a -> a -> Bool instance Eq () where equals () () = True |] ======> class Eq a where equals :: a -> a -> Bool instance Eq () where equals () () = True type EqualsSym0 :: forall a. (~>) a ((~>) a Bool) data EqualsSym0 :: (~>) a ((~>) a Bool) where EqualsSym0KindInference :: SameKind (Apply EqualsSym0 arg) (EqualsSym1 arg) => EqualsSym0 a0123456789876543210 type instance Apply EqualsSym0 a0123456789876543210 = EqualsSym1 a0123456789876543210 instance Data.Singletons.TH.SuppressUnusedWarnings.SuppressUnusedWarnings EqualsSym0 where Data.Singletons.TH.SuppressUnusedWarnings.suppressUnusedWarnings = snd ((,) EqualsSym0KindInference ()) type EqualsSym1 :: forall a. a -> (~>) a Bool data EqualsSym1 (a0123456789876543210 :: a) :: (~>) a Bool where EqualsSym1KindInference :: SameKind (Apply (EqualsSym1 a0123456789876543210) arg) (EqualsSym2 a0123456789876543210 arg) => EqualsSym1 a0123456789876543210 a0123456789876543210 type instance Apply (EqualsSym1 a0123456789876543210) a0123456789876543210 = Equals a0123456789876543210 a0123456789876543210 instance Data.Singletons.TH.SuppressUnusedWarnings.SuppressUnusedWarnings (EqualsSym1 a0123456789876543210) where Data.Singletons.TH.SuppressUnusedWarnings.suppressUnusedWarnings = snd ((,) EqualsSym1KindInference ()) type EqualsSym2 :: forall a. a -> a -> Bool type family EqualsSym2 (a0123456789876543210 :: a) (a0123456789876543210 :: a) :: Bool where EqualsSym2 a0123456789876543210 a0123456789876543210 = Equals a0123456789876543210 a0123456789876543210 class PEq a where type family Equals (arg :: a) (arg :: a) :: Bool type Equals_0123456789876543210 :: () -> () -> Bool type family Equals_0123456789876543210 (a :: ()) (a :: ()) :: Bool where Equals_0123456789876543210 '() '() = TrueSym0 type Equals_0123456789876543210Sym0 :: (~>) () ((~>) () Bool) data Equals_0123456789876543210Sym0 :: (~>) () ((~>) () Bool) where Equals_0123456789876543210Sym0KindInference :: SameKind (Apply Equals_0123456789876543210Sym0 arg) (Equals_0123456789876543210Sym1 arg) => Equals_0123456789876543210Sym0 a0123456789876543210 type instance Apply Equals_0123456789876543210Sym0 a0123456789876543210 = Equals_0123456789876543210Sym1 a0123456789876543210 instance Data.Singletons.TH.SuppressUnusedWarnings.SuppressUnusedWarnings Equals_0123456789876543210Sym0 where Data.Singletons.TH.SuppressUnusedWarnings.suppressUnusedWarnings = snd ((,) Equals_0123456789876543210Sym0KindInference ()) type Equals_0123456789876543210Sym1 :: () -> (~>) () Bool data Equals_0123456789876543210Sym1 (a0123456789876543210 :: ()) :: (~>) () Bool where Equals_0123456789876543210Sym1KindInference :: SameKind (Apply (Equals_0123456789876543210Sym1 a0123456789876543210) arg) (Equals_0123456789876543210Sym2 a0123456789876543210 arg) => Equals_0123456789876543210Sym1 a0123456789876543210 a0123456789876543210 type instance Apply (Equals_0123456789876543210Sym1 a0123456789876543210) a0123456789876543210 = Equals_0123456789876543210 a0123456789876543210 a0123456789876543210 instance Data.Singletons.TH.SuppressUnusedWarnings.SuppressUnusedWarnings (Equals_0123456789876543210Sym1 a0123456789876543210) where Data.Singletons.TH.SuppressUnusedWarnings.suppressUnusedWarnings = snd ((,) Equals_0123456789876543210Sym1KindInference ()) type Equals_0123456789876543210Sym2 :: () -> () -> Bool type family Equals_0123456789876543210Sym2 (a0123456789876543210 :: ()) (a0123456789876543210 :: ()) :: Bool where Equals_0123456789876543210Sym2 a0123456789876543210 a0123456789876543210 = Equals_0123456789876543210 a0123456789876543210 a0123456789876543210 instance PEq () where type Equals a a = Apply (Apply Equals_0123456789876543210Sym0 a) a