Singletons/PolyKinds.hs:(0,0)-(0,0): Splicing declarations singletons [d| class Cls (a :: k) where fff :: Proxy (a :: k) -> () |] ======> class Cls (a :: k) where fff :: Proxy (a :: k) -> () type FffSym0 :: forall k (a :: k). (~>) (Proxy (a :: k)) () data FffSym0 :: (~>) (Proxy (a :: k)) () where FffSym0KindInference :: SameKind (Apply FffSym0 arg) (FffSym1 arg) => FffSym0 a0123456789876543210 type instance Apply FffSym0 a0123456789876543210 = Fff a0123456789876543210 instance SuppressUnusedWarnings FffSym0 where suppressUnusedWarnings = snd ((,) FffSym0KindInference ()) type FffSym1 :: forall k (a :: k). Proxy (a :: k) -> () type family FffSym1 (a0123456789876543210 :: Proxy (a :: k)) :: () where FffSym1 a0123456789876543210 = Fff a0123456789876543210 class PCls (a :: k) where type family Fff (arg :: Proxy (a :: k)) :: () class SCls (a :: k) where sFff :: (forall (t :: Proxy (a :: k)). Sing t -> Sing (Apply FffSym0 t :: ()) :: Type) instance SCls a => SingI (FffSym0 :: (~>) (Proxy (a :: k)) ()) where sing = singFun1 @FffSym0 sFff