Promote/Newtypes.hs:(0,0)-(0,0): Splicing declarations promote [d| newtype Foo = Foo Nat deriving (Eq) newtype Bar = Bar {unBar :: Nat} |] ======> newtype Foo = Foo Nat deriving Eq newtype Bar = Bar {unBar :: Nat} type FooSym0 :: (~>) Nat Foo data FooSym0 :: (~>) Nat Foo where FooSym0KindInference :: SameKind (Apply FooSym0 arg) (FooSym1 arg) => FooSym0 a0123456789876543210 type instance Apply FooSym0 a0123456789876543210 = Foo a0123456789876543210 instance SuppressUnusedWarnings FooSym0 where suppressUnusedWarnings = snd ((,) FooSym0KindInference ()) type FooSym1 :: Nat -> Foo type family FooSym1 (a0123456789876543210 :: Nat) :: Foo where FooSym1 a0123456789876543210 = Foo a0123456789876543210 type BarSym0 :: (~>) Nat Bar data BarSym0 :: (~>) Nat Bar where BarSym0KindInference :: SameKind (Apply BarSym0 arg) (BarSym1 arg) => BarSym0 a0123456789876543210 type instance Apply BarSym0 a0123456789876543210 = Bar a0123456789876543210 instance SuppressUnusedWarnings BarSym0 where suppressUnusedWarnings = snd ((,) BarSym0KindInference ()) type BarSym1 :: Nat -> Bar type family BarSym1 (a0123456789876543210 :: Nat) :: Bar where BarSym1 a0123456789876543210 = Bar a0123456789876543210 type UnBarSym0 :: (~>) Bar Nat data UnBarSym0 :: (~>) Bar Nat where UnBarSym0KindInference :: SameKind (Apply UnBarSym0 arg) (UnBarSym1 arg) => UnBarSym0 a0123456789876543210 type instance Apply UnBarSym0 a0123456789876543210 = UnBar a0123456789876543210 instance SuppressUnusedWarnings UnBarSym0 where suppressUnusedWarnings = snd ((,) UnBarSym0KindInference ()) type UnBarSym1 :: Bar -> Nat type family UnBarSym1 (a0123456789876543210 :: Bar) :: Nat where UnBarSym1 a0123456789876543210 = UnBar a0123456789876543210 type UnBar :: Bar -> Nat type family UnBar (a :: Bar) :: Nat where UnBar (Bar field) = field type TFHelper_0123456789876543210 :: Foo -> Foo -> Bool type family TFHelper_0123456789876543210 (a :: Foo) (a :: Foo) :: Bool where TFHelper_0123456789876543210 (Foo a_0123456789876543210) (Foo b_0123456789876543210) = Apply (Apply (==@#@$) a_0123456789876543210) b_0123456789876543210 type TFHelper_0123456789876543210Sym0 :: (~>) Foo ((~>) Foo Bool) data TFHelper_0123456789876543210Sym0 :: (~>) Foo ((~>) Foo Bool) where TFHelper_0123456789876543210Sym0KindInference :: SameKind (Apply TFHelper_0123456789876543210Sym0 arg) (TFHelper_0123456789876543210Sym1 arg) => TFHelper_0123456789876543210Sym0 a0123456789876543210 type instance Apply TFHelper_0123456789876543210Sym0 a0123456789876543210 = TFHelper_0123456789876543210Sym1 a0123456789876543210 instance SuppressUnusedWarnings TFHelper_0123456789876543210Sym0 where suppressUnusedWarnings = snd ((,) TFHelper_0123456789876543210Sym0KindInference ()) type TFHelper_0123456789876543210Sym1 :: Foo -> (~>) Foo Bool data TFHelper_0123456789876543210Sym1 (a0123456789876543210 :: Foo) :: (~>) Foo Bool where TFHelper_0123456789876543210Sym1KindInference :: SameKind (Apply (TFHelper_0123456789876543210Sym1 a0123456789876543210) arg) (TFHelper_0123456789876543210Sym2 a0123456789876543210 arg) => TFHelper_0123456789876543210Sym1 a0123456789876543210 a0123456789876543210 type instance Apply (TFHelper_0123456789876543210Sym1 a0123456789876543210) a0123456789876543210 = TFHelper_0123456789876543210 a0123456789876543210 a0123456789876543210 instance SuppressUnusedWarnings (TFHelper_0123456789876543210Sym1 a0123456789876543210) where suppressUnusedWarnings = snd ((,) TFHelper_0123456789876543210Sym1KindInference ()) type TFHelper_0123456789876543210Sym2 :: Foo -> Foo -> Bool type family TFHelper_0123456789876543210Sym2 (a0123456789876543210 :: Foo) (a0123456789876543210 :: Foo) :: Bool where TFHelper_0123456789876543210Sym2 a0123456789876543210 a0123456789876543210 = TFHelper_0123456789876543210 a0123456789876543210 a0123456789876543210 instance PEq Foo where type (==) a a = Apply (Apply TFHelper_0123456789876543210Sym0 a) a