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