singletons-base-3.3: tests/compile-and-dump/Singletons/T175.golden
Singletons/T175.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| quux2 :: Bar2 a => a
quux2 = baz
class Foo a where
baz :: a
class Foo a => Bar1 a where
quux1 :: a
quux1 = baz
class Foo a => Bar2 a |]
======>
class Foo a where
baz :: a
class Foo a => Bar1 a where
quux1 :: a
quux1 = baz
class Foo a => Bar2 a
quux2 :: Bar2 a => a
quux2 = baz
type Quux2Sym0 :: a
type family Quux2Sym0 :: a where
Quux2Sym0 = Quux2
type Quux2 :: a
type family Quux2 :: a where
Quux2 = BazSym0
type BazSym0 :: forall a. a
type family BazSym0 :: a where
BazSym0 = Baz
class PFoo a where
type family Baz :: a
type Quux1Sym0 :: forall a. a
type family Quux1Sym0 :: a where
Quux1Sym0 = Quux1
type Quux1_0123456789876543210 :: a
type family Quux1_0123456789876543210 :: a where
Quux1_0123456789876543210 = BazSym0
type Quux1_0123456789876543210Sym0 :: a
type family Quux1_0123456789876543210Sym0 :: a where
Quux1_0123456789876543210Sym0 = Quux1_0123456789876543210
class PBar1 a where
type family Quux1 :: a
type Quux1 = Quux1_0123456789876543210Sym0
class PBar2 a
sQuux2 :: (SBar2 a => Sing (Quux2Sym0 :: a) :: Type)
sQuux2 = sBaz
class SFoo a where
sBaz :: (Sing (BazSym0 :: a) :: Type)
class SFoo a => SBar1 a where
sQuux1 :: (Sing (Quux1Sym0 :: a) :: Type)
default sQuux1 ::
(((Quux1Sym0 :: a) ~ Quux1_0123456789876543210Sym0) =>
Sing (Quux1Sym0 :: a) :: Type)
sQuux1 = sBaz
class SFoo a => SBar2 a