Singletons/T145.hs:(0,0)-(0,0): Splicing declarations singletons [d| class Column (f :: Type -> Type) where col :: f a -> a -> Bool |] ======> class Column (f :: Type -> Type) where col :: f a -> a -> Bool type ColSym2 (t :: f0123456789876543210 a0123456789876543210) (t :: a0123456789876543210) = Col t t instance SuppressUnusedWarnings ColSym1 where suppressUnusedWarnings = snd ((GHC.Tuple.(,) ColSym1KindInference) GHC.Tuple.()) data ColSym1 (l :: f0123456789876543210 a0123456789876543210) (l :: TyFun a0123456789876543210 Bool) = forall arg. SameKind (Apply (ColSym1 l) arg) (ColSym2 l arg) => ColSym1KindInference type instance Apply (ColSym1 l) l = Col l l instance SuppressUnusedWarnings ColSym0 where suppressUnusedWarnings = snd ((GHC.Tuple.(,) ColSym0KindInference) GHC.Tuple.()) data ColSym0 (l :: TyFun (f0123456789876543210 a0123456789876543210) (TyFun a0123456789876543210 Bool -> Type)) = forall arg. SameKind (Apply ColSym0 arg) (ColSym1 arg) => ColSym0KindInference type instance Apply ColSym0 l = ColSym1 l class PColumn (f :: Type -> Type) where type Col (arg :: f a) (arg :: a) :: Bool class SColumn (f :: Type -> Type) where sCol :: forall (t :: f a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply ColSym0 t) t :: Bool)