singletons-2.4: tests/compile-and-dump/Singletons/T145.ghc84.template
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)