singletons-base-3.3: tests/compile-and-dump/Singletons/T414.golden
Singletons/T414.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| type C3 :: Bool -> Constraint
class C1 (a :: Bool) where
type T1 a b
class C2 a where
type T2 a b
class C3 a where
type T3 a b |]
======>
class C1 (a :: Bool) where
type family T1 a b
class C2 a where
type family T2 a b
type C3 :: Bool -> Constraint
class C3 a where
type family T3 a b
data T1Sym0 a0123456789876543210
where
T1Sym0KindInference :: SameKind (Apply T1Sym0 arg) (T1Sym1 arg) =>
T1Sym0 a0123456789876543210
type instance Apply T1Sym0 a0123456789876543210 = T1Sym1 a0123456789876543210
instance SuppressUnusedWarnings T1Sym0 where
suppressUnusedWarnings = snd ((,) T1Sym0KindInference ())
data T1Sym1 (a0123456789876543210 :: Bool) b0123456789876543210
where
T1Sym1KindInference :: SameKind (Apply (T1Sym1 a0123456789876543210) arg) (T1Sym2 a0123456789876543210 arg) =>
T1Sym1 a0123456789876543210 b0123456789876543210
type instance Apply (T1Sym1 a0123456789876543210) b0123456789876543210 = T1 a0123456789876543210 b0123456789876543210
instance SuppressUnusedWarnings (T1Sym1 a0123456789876543210) where
suppressUnusedWarnings = snd ((,) T1Sym1KindInference ())
type family T1Sym2 (a0123456789876543210 :: Bool) b0123456789876543210 where
T1Sym2 a0123456789876543210 b0123456789876543210 = T1 a0123456789876543210 b0123456789876543210
class PC1 (a :: Bool)
data T2Sym0 a0123456789876543210
where
T2Sym0KindInference :: SameKind (Apply T2Sym0 arg) (T2Sym1 arg) =>
T2Sym0 a0123456789876543210
type instance Apply T2Sym0 a0123456789876543210 = T2Sym1 a0123456789876543210
instance SuppressUnusedWarnings T2Sym0 where
suppressUnusedWarnings = snd ((,) T2Sym0KindInference ())
data T2Sym1 a0123456789876543210 b0123456789876543210
where
T2Sym1KindInference :: SameKind (Apply (T2Sym1 a0123456789876543210) arg) (T2Sym2 a0123456789876543210 arg) =>
T2Sym1 a0123456789876543210 b0123456789876543210
type instance Apply (T2Sym1 a0123456789876543210) b0123456789876543210 = T2 a0123456789876543210 b0123456789876543210
instance SuppressUnusedWarnings (T2Sym1 a0123456789876543210) where
suppressUnusedWarnings = snd ((,) T2Sym1KindInference ())
type family T2Sym2 a0123456789876543210 b0123456789876543210 where
T2Sym2 a0123456789876543210 b0123456789876543210 = T2 a0123456789876543210 b0123456789876543210
class PC2 a
type T3Sym0 :: (~>) Bool ((~>) Type Type)
data T3Sym0 :: (~>) Bool ((~>) Type Type)
where
T3Sym0KindInference :: SameKind (Apply T3Sym0 arg) (T3Sym1 arg) =>
T3Sym0 a0123456789876543210
type instance Apply T3Sym0 a0123456789876543210 = T3Sym1 a0123456789876543210
instance SuppressUnusedWarnings T3Sym0 where
suppressUnusedWarnings = snd ((,) T3Sym0KindInference ())
type T3Sym1 :: Bool -> (~>) Type Type
data T3Sym1 (a0123456789876543210 :: Bool) :: (~>) Type Type
where
T3Sym1KindInference :: SameKind (Apply (T3Sym1 a0123456789876543210) arg) (T3Sym2 a0123456789876543210 arg) =>
T3Sym1 a0123456789876543210 a0123456789876543210
type instance Apply (T3Sym1 a0123456789876543210) a0123456789876543210 = T3 a0123456789876543210 a0123456789876543210
instance SuppressUnusedWarnings (T3Sym1 a0123456789876543210) where
suppressUnusedWarnings = snd ((,) T3Sym1KindInference ())
type T3Sym2 :: Bool -> Type -> Type
type family T3Sym2 (a0123456789876543210 :: Bool) (a0123456789876543210 :: Type) :: Type where
T3Sym2 a0123456789876543210 a0123456789876543210 = T3 a0123456789876543210 a0123456789876543210
type PC3 :: Bool -> Constraint
class PC3 a
class SC1 (a :: Bool)
class SC2 a
class SC3 a
type SC3 :: Bool -> Constraint