singletons-2.7: tests/compile-and-dump/Promote/Newtypes.golden
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 a0123456789876543210
where
FooSym0KindInference :: SameKind (Apply FooSym0 arg) (FooSym1 arg) =>
FooSym0 a0123456789876543210
type instance Apply FooSym0 a0123456789876543210 = FooSym1 a0123456789876543210
instance SuppressUnusedWarnings FooSym0 where
suppressUnusedWarnings = snd (((,) FooSym0KindInference) ())
type FooSym1 (a0123456789876543210 :: Nat) =
Foo a0123456789876543210 :: Foo
type BarSym0 :: (~>) Nat Bar
data BarSym0 a0123456789876543210
where
BarSym0KindInference :: SameKind (Apply BarSym0 arg) (BarSym1 arg) =>
BarSym0 a0123456789876543210
type instance Apply BarSym0 a0123456789876543210 = BarSym1 a0123456789876543210
instance SuppressUnusedWarnings BarSym0 where
suppressUnusedWarnings = snd (((,) BarSym0KindInference) ())
type BarSym1 (a0123456789876543210 :: Nat) =
Bar a0123456789876543210 :: Bar
type UnBarSym0 :: (~>) Bar Nat
data UnBarSym0 a0123456789876543210
where
UnBarSym0KindInference :: SameKind (Apply UnBarSym0 arg) (UnBarSym1 arg) =>
UnBarSym0 a0123456789876543210
type instance Apply UnBarSym0 a0123456789876543210 = UnBarSym1 a0123456789876543210
instance SuppressUnusedWarnings UnBarSym0 where
suppressUnusedWarnings = snd (((,) UnBarSym0KindInference) ())
type UnBarSym1 (a0123456789876543210 :: Bar) =
UnBar a0123456789876543210 :: Nat
type UnBar :: Bar -> Nat
type family UnBar a where
UnBar (Bar field) = field
type Equals_0123456789876543210 :: Foo -> Foo -> Bool
type family Equals_0123456789876543210 a b 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