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 family Equals_0123456789876543210 (a :: Foo) (b :: Foo) :: Bool where Equals_0123456789876543210 (Foo a) (Foo b) = (==) a b Equals_0123456789876543210 (_ :: Foo) (_ :: Foo) = FalseSym0 instance PEq Foo where type (==) a b = Equals_0123456789876543210 a b type UnBarSym1 (a0123456789876543210 :: Bar) = UnBar a0123456789876543210 instance SuppressUnusedWarnings UnBarSym0 where suppressUnusedWarnings = snd (((,) UnBarSym0KindInference) ()) data UnBarSym0 :: (~>) Bar Nat where UnBarSym0KindInference :: forall a0123456789876543210 arg. SameKind (Apply UnBarSym0 arg) (UnBarSym1 arg) => UnBarSym0 a0123456789876543210 type instance Apply UnBarSym0 a0123456789876543210 = UnBar a0123456789876543210 type family UnBar (a :: Bar) :: Nat where UnBar (Bar field) = field type FooSym1 (t0123456789876543210 :: Nat) = Foo t0123456789876543210 instance SuppressUnusedWarnings FooSym0 where suppressUnusedWarnings = snd (((,) FooSym0KindInference) ()) data FooSym0 :: (~>) Nat Foo where FooSym0KindInference :: forall t0123456789876543210 arg. SameKind (Apply FooSym0 arg) (FooSym1 arg) => FooSym0 t0123456789876543210 type instance Apply FooSym0 t0123456789876543210 = Foo t0123456789876543210 type BarSym1 (t0123456789876543210 :: Nat) = Bar t0123456789876543210 instance SuppressUnusedWarnings BarSym0 where suppressUnusedWarnings = snd (((,) BarSym0KindInference) ()) data BarSym0 :: (~>) Nat Bar where BarSym0KindInference :: forall t0123456789876543210 arg. SameKind (Apply BarSym0 arg) (BarSym1 arg) => BarSym0 t0123456789876543210 type instance Apply BarSym0 t0123456789876543210 = Bar t0123456789876543210