singletons-base-3.3: tests/compile-and-dump/Singletons/T136b.golden
Singletons/T136b.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| class C a where
meth :: a -> a |]
======>
class C a where
meth :: a -> a
type MethSym0 :: forall a. (~>) a a
data MethSym0 :: (~>) a a
where
MethSym0KindInference :: SameKind (Apply MethSym0 arg) (MethSym1 arg) =>
MethSym0 a0123456789876543210
type instance Apply MethSym0 a0123456789876543210 = Meth a0123456789876543210
instance SuppressUnusedWarnings MethSym0 where
suppressUnusedWarnings = snd ((,) MethSym0KindInference ())
type MethSym1 :: forall a. a -> a
type family MethSym1 (a0123456789876543210 :: a) :: a where
MethSym1 a0123456789876543210 = Meth a0123456789876543210
class PC a where
type family Meth (arg :: a) :: a
class SC a where
sMeth ::
(forall (t :: a). Sing t -> Sing (Apply MethSym0 t :: a) :: Type)
instance SC a => SingI (MethSym0 :: (~>) a a) where
sing = singFun1 @MethSym0 sMeth
Singletons/T136b.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| instance C Bool where
meth = not |]
======>
instance C Bool where
meth = not
type Meth_0123456789876543210 :: Bool -> Bool
type family Meth_0123456789876543210 (a :: Bool) :: Bool where
Meth_0123456789876543210 a_0123456789876543210 = Apply NotSym0 a_0123456789876543210
type Meth_0123456789876543210Sym0 :: (~>) Bool Bool
data Meth_0123456789876543210Sym0 :: (~>) Bool Bool
where
Meth_0123456789876543210Sym0KindInference :: SameKind (Apply Meth_0123456789876543210Sym0 arg) (Meth_0123456789876543210Sym1 arg) =>
Meth_0123456789876543210Sym0 a0123456789876543210
type instance Apply Meth_0123456789876543210Sym0 a0123456789876543210 = Meth_0123456789876543210 a0123456789876543210
instance SuppressUnusedWarnings Meth_0123456789876543210Sym0 where
suppressUnusedWarnings
= snd ((,) Meth_0123456789876543210Sym0KindInference ())
type Meth_0123456789876543210Sym1 :: Bool -> Bool
type family Meth_0123456789876543210Sym1 (a0123456789876543210 :: Bool) :: Bool where
Meth_0123456789876543210Sym1 a0123456789876543210 = Meth_0123456789876543210 a0123456789876543210
instance PC Bool where
type Meth a = Apply Meth_0123456789876543210Sym0 a
instance SC Bool where
sMeth ::
forall (t :: Bool). Sing t
-> Sing (Apply (MethSym0 :: TyFun Bool Bool -> Type) t)
sMeth (sA_0123456789876543210 :: Sing a_0123456789876543210)
= applySing (singFun1 @NotSym0 sNot) sA_0123456789876543210