singletons-2.4: tests/compile-and-dump/Singletons/EmptyShowDeriving.ghc84.template
Singletons/EmptyShowDeriving.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| data Foo
deriving instance Show Foo |]
======>
data Foo
deriving instance Show Foo
type family Case_0123456789876543210 v_0123456789876543210 a_0123456789876543210 t where
type family ShowsPrec_0123456789876543210 (a :: GHC.Types.Nat) (a :: Foo) (a :: GHC.Types.Symbol) :: GHC.Types.Symbol where
ShowsPrec_0123456789876543210 _ v_0123456789876543210 a_0123456789876543210 = Apply (Case_0123456789876543210 v_0123456789876543210 a_0123456789876543210 v_0123456789876543210) a_0123456789876543210
type ShowsPrec_0123456789876543210Sym3 (t :: GHC.Types.Nat) (t :: Foo) (t :: GHC.Types.Symbol) =
ShowsPrec_0123456789876543210 t t t
instance SuppressUnusedWarnings ShowsPrec_0123456789876543210Sym2 where
suppressUnusedWarnings
= snd
((GHC.Tuple.(,) ShowsPrec_0123456789876543210Sym2KindInference)
GHC.Tuple.())
data ShowsPrec_0123456789876543210Sym2 (l :: GHC.Types.Nat) (l :: Foo) (l :: TyFun GHC.Types.Symbol GHC.Types.Symbol)
= forall arg. SameKind (Apply (ShowsPrec_0123456789876543210Sym2 l l) arg) (ShowsPrec_0123456789876543210Sym3 l l arg) =>
ShowsPrec_0123456789876543210Sym2KindInference
type instance Apply (ShowsPrec_0123456789876543210Sym2 l l) l = ShowsPrec_0123456789876543210 l l l
instance SuppressUnusedWarnings ShowsPrec_0123456789876543210Sym1 where
suppressUnusedWarnings
= snd
((GHC.Tuple.(,) ShowsPrec_0123456789876543210Sym1KindInference)
GHC.Tuple.())
data ShowsPrec_0123456789876543210Sym1 (l :: GHC.Types.Nat) (l :: TyFun Foo (TyFun GHC.Types.Symbol GHC.Types.Symbol
-> GHC.Types.Type))
= forall arg. SameKind (Apply (ShowsPrec_0123456789876543210Sym1 l) arg) (ShowsPrec_0123456789876543210Sym2 l arg) =>
ShowsPrec_0123456789876543210Sym1KindInference
type instance Apply (ShowsPrec_0123456789876543210Sym1 l) l = ShowsPrec_0123456789876543210Sym2 l l
instance SuppressUnusedWarnings ShowsPrec_0123456789876543210Sym0 where
suppressUnusedWarnings
= snd
((GHC.Tuple.(,) ShowsPrec_0123456789876543210Sym0KindInference)
GHC.Tuple.())
data ShowsPrec_0123456789876543210Sym0 (l :: TyFun GHC.Types.Nat (TyFun Foo (TyFun GHC.Types.Symbol GHC.Types.Symbol
-> GHC.Types.Type)
-> GHC.Types.Type))
= forall arg. SameKind (Apply ShowsPrec_0123456789876543210Sym0 arg) (ShowsPrec_0123456789876543210Sym1 arg) =>
ShowsPrec_0123456789876543210Sym0KindInference
type instance Apply ShowsPrec_0123456789876543210Sym0 l = ShowsPrec_0123456789876543210Sym1 l
instance PShow Foo where
type ShowsPrec a a a = Apply (Apply (Apply ShowsPrec_0123456789876543210Sym0 a) a) a
data instance Sing (z :: Foo)
type SFoo = (Sing :: Foo -> GHC.Types.Type)
instance SingKind Foo where
type Demote Foo = Foo
fromSing x = case x of
toSing x = SomeSing (case x of)
instance SShow Foo where
sShowsPrec ::
forall (t1 :: GHC.Types.Nat) (t2 :: Foo) (t3 :: GHC.Types.Symbol).
Sing t1
-> Sing t2
-> Sing t3
-> Sing (Apply (Apply (Apply (ShowsPrecSym0 :: TyFun GHC.Types.Nat (TyFun Foo (TyFun GHC.Types.Symbol GHC.Types.Symbol
-> GHC.Types.Type)
-> GHC.Types.Type)
-> GHC.Types.Type) t1) t2) t3)
sShowsPrec
_
(sV_0123456789876543210 :: Sing v_0123456789876543210)
(sA_0123456789876543210 :: Sing a_0123456789876543210)
= (applySing
(case sV_0123456789876543210 of ::
Sing (Case_0123456789876543210 v_0123456789876543210 a_0123456789876543210 v_0123456789876543210)))
sA_0123456789876543210
instance Data.Singletons.ShowSing.ShowSing Foo where
Data.Singletons.ShowSing.showsSingPrec _ v_0123456789876543210
= case v_0123456789876543210 of
instance Show (Sing (z :: Foo)) where
showsPrec = Data.Singletons.ShowSing.showsSingPrec