singletons-2.3: tests/compile-and-dump/Singletons/T136b.ghc82.template
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 MethSym1 (t :: a0123456789876543210) = Meth t
instance SuppressUnusedWarnings MethSym0 where
suppressUnusedWarnings _
= snd ((GHC.Tuple.(,) MethSym0KindInference) GHC.Tuple.())
data MethSym0 (l :: TyFun a0123456789876543210 a0123456789876543210)
= forall arg. SameKind (Apply MethSym0 arg) (MethSym1 arg) =>
MethSym0KindInference
type instance Apply MethSym0 l = Meth l
class PC (a :: GHC.Types.Type) where
type Meth (arg :: a) :: a
class SC a where
sMeth :: forall (t :: a). Sing t -> Sing (Apply MethSym0 t :: a)
Singletons/T136b.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| instance C Bool where
meth = not |]
======>
instance C Bool where
meth = not
type family Meth_0123456789876543210 (a :: Bool) :: Bool where
Meth_0123456789876543210 a_0123456789876543210 = Apply NotSym0 a_0123456789876543210
type Meth_0123456789876543210Sym1 (t :: Bool) =
Meth_0123456789876543210 t
instance SuppressUnusedWarnings Meth_0123456789876543210Sym0 where
suppressUnusedWarnings _
= snd
((GHC.Tuple.(,) Meth_0123456789876543210Sym0KindInference)
GHC.Tuple.())
data Meth_0123456789876543210Sym0 (l :: TyFun Bool Bool)
= forall arg. SameKind (Apply Meth_0123456789876543210Sym0 arg) (Meth_0123456789876543210Sym1 arg) =>
Meth_0123456789876543210Sym0KindInference
type instance Apply Meth_0123456789876543210Sym0 l = Meth_0123456789876543210 l
instance PC Bool where
type Meth (a :: Bool) = Apply Meth_0123456789876543210Sym0 a
instance SC Bool where
sMeth ::
forall (t :: Bool).
Sing t
-> Sing (Apply (MethSym0 :: TyFun Bool Bool
-> GHC.Types.Type) t :: Bool)
sMeth (sA_0123456789876543210 :: Sing a_0123456789876543210)
= (applySing ((singFun1 @NotSym0) sNot)) sA_0123456789876543210