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 FffSym1 (arg0123456789876543210 :: Proxy (a0123456789876543210 :: k0123456789876543210)) = Fff arg0123456789876543210 instance SuppressUnusedWarnings FffSym0 where suppressUnusedWarnings = snd (((,) FffSym0KindInference) ()) data FffSym0 :: forall k0123456789876543210 (a0123456789876543210 :: k0123456789876543210). (~>) (Proxy (a0123456789876543210 :: k0123456789876543210)) () where FffSym0KindInference :: forall arg0123456789876543210 arg. SameKind (Apply FffSym0 arg) (FffSym1 arg) => FffSym0 arg0123456789876543210 type instance Apply FffSym0 arg0123456789876543210 = Fff arg0123456789876543210 class PCls (a :: k) where type Fff (arg :: Proxy (a :: k)) :: () class SCls (a :: k) where sFff :: forall (t :: Proxy (a :: k)). Sing t -> Sing (Apply FffSym0 t :: ()) instance SCls a => SingI (FffSym0 :: (~>) (Proxy (a :: k)) ()) where sing = (singFun1 @FffSym0) sFff