Singletons/ShowDeriving.hs:(0,0)-(0,0): Splicing declarations singletons [d| infixl 5 `MkFoo2b`, :*:, :&: data Foo1 = MkFoo1 deriving Show data Foo2 a = MkFoo2a a a | a `MkFoo2b` a | (:*:) a a | a :&: a deriving Show data Foo3 = MkFoo3 {getFoo3a :: Bool, *** :: Bool} deriving Show |] ======> data Foo1 = MkFoo1 deriving Show infixl 5 `MkFoo2b` infixl 5 :*: infixl 5 :&: data Foo2 a = MkFoo2a a a | a `MkFoo2b` a | (:*:) a a | a :&: a deriving Show data Foo3 = MkFoo3 {getFoo3a :: Bool, *** :: Bool} deriving Show type GetFoo3aSym1 (t :: Foo3) = GetFoo3a t instance SuppressUnusedWarnings GetFoo3aSym0 where suppressUnusedWarnings = snd ((GHC.Tuple.(,) GetFoo3aSym0KindInference) GHC.Tuple.()) data GetFoo3aSym0 (l :: TyFun Foo3 Bool) = forall arg. SameKind (Apply GetFoo3aSym0 arg) (GetFoo3aSym1 arg) => GetFoo3aSym0KindInference type instance Apply GetFoo3aSym0 l = GetFoo3a l type (***@#@$$) (t :: Foo3) = (***) t instance SuppressUnusedWarnings (***@#@$) where suppressUnusedWarnings = snd ((GHC.Tuple.(,) (:***@#@$###)) GHC.Tuple.()) data (***@#@$) (l :: TyFun Foo3 Bool) = forall arg. SameKind (Apply (***@#@$) arg) ((***@#@$$) arg) => (:***@#@$###) type instance Apply (***@#@$) l = (***) l type family GetFoo3a (a :: Foo3) :: Bool where GetFoo3a (MkFoo3 field _) = field type family (***) (a :: Foo3) :: Bool where (***) (MkFoo3 _ field) = field type MkFoo1Sym0 = MkFoo1 type MkFoo2aSym2 (t :: a0123456789876543210) (t :: a0123456789876543210) = MkFoo2a t t instance SuppressUnusedWarnings MkFoo2aSym1 where suppressUnusedWarnings = snd ((GHC.Tuple.(,) MkFoo2aSym1KindInference) GHC.Tuple.()) data MkFoo2aSym1 (l :: a0123456789876543210) (l :: TyFun a0123456789876543210 (Foo2 a0123456789876543210)) = forall arg. SameKind (Apply (MkFoo2aSym1 l) arg) (MkFoo2aSym2 l arg) => MkFoo2aSym1KindInference type instance Apply (MkFoo2aSym1 l) l = MkFoo2a l l instance SuppressUnusedWarnings MkFoo2aSym0 where suppressUnusedWarnings = snd ((GHC.Tuple.(,) MkFoo2aSym0KindInference) GHC.Tuple.()) data MkFoo2aSym0 (l :: TyFun a0123456789876543210 (TyFun a0123456789876543210 (Foo2 a0123456789876543210) -> GHC.Types.Type)) = forall arg. SameKind (Apply MkFoo2aSym0 arg) (MkFoo2aSym1 arg) => MkFoo2aSym0KindInference type instance Apply MkFoo2aSym0 l = MkFoo2aSym1 l type MkFoo2bSym2 (t :: a0123456789876543210) (t :: a0123456789876543210) = MkFoo2b t t instance SuppressUnusedWarnings MkFoo2bSym1 where suppressUnusedWarnings = snd ((GHC.Tuple.(,) MkFoo2bSym1KindInference) GHC.Tuple.()) data MkFoo2bSym1 (l :: a0123456789876543210) (l :: TyFun a0123456789876543210 (Foo2 a0123456789876543210)) = forall arg. SameKind (Apply (MkFoo2bSym1 l) arg) (MkFoo2bSym2 l arg) => MkFoo2bSym1KindInference type instance Apply (MkFoo2bSym1 l) l = MkFoo2b l l instance SuppressUnusedWarnings MkFoo2bSym0 where suppressUnusedWarnings = snd ((GHC.Tuple.(,) MkFoo2bSym0KindInference) GHC.Tuple.()) data MkFoo2bSym0 (l :: TyFun a0123456789876543210 (TyFun a0123456789876543210 (Foo2 a0123456789876543210) -> GHC.Types.Type)) = forall arg. SameKind (Apply MkFoo2bSym0 arg) (MkFoo2bSym1 arg) => MkFoo2bSym0KindInference type instance Apply MkFoo2bSym0 l = MkFoo2bSym1 l type (:*:@#@$$$) (t :: a0123456789876543210) (t :: a0123456789876543210) = (:*:) t t instance SuppressUnusedWarnings (:*:@#@$$) where suppressUnusedWarnings = snd ((GHC.Tuple.(,) (::*:@#@$$###)) GHC.Tuple.()) data (:*:@#@$$) (l :: a0123456789876543210) (l :: TyFun a0123456789876543210 (Foo2 a0123456789876543210)) = forall arg. SameKind (Apply ((:*:@#@$$) l) arg) ((:*:@#@$$$) l arg) => (::*:@#@$$###) type instance Apply ((:*:@#@$$) l) l = (:*:) l l instance SuppressUnusedWarnings (:*:@#@$) where suppressUnusedWarnings = snd ((GHC.Tuple.(,) (::*:@#@$###)) GHC.Tuple.()) data (:*:@#@$) (l :: TyFun a0123456789876543210 (TyFun a0123456789876543210 (Foo2 a0123456789876543210) -> GHC.Types.Type)) = forall arg. SameKind (Apply (:*:@#@$) arg) ((:*:@#@$$) arg) => (::*:@#@$###) type instance Apply (:*:@#@$) l = (:*:@#@$$) l type (:&:@#@$$$) (t :: a0123456789876543210) (t :: a0123456789876543210) = (:&:) t t instance SuppressUnusedWarnings (:&:@#@$$) where suppressUnusedWarnings = snd ((GHC.Tuple.(,) (::&:@#@$$###)) GHC.Tuple.()) data (:&:@#@$$) (l :: a0123456789876543210) (l :: TyFun a0123456789876543210 (Foo2 a0123456789876543210)) = forall arg. SameKind (Apply ((:&:@#@$$) l) arg) ((:&:@#@$$$) l arg) => (::&:@#@$$###) type instance Apply ((:&:@#@$$) l) l = (:&:) l l instance SuppressUnusedWarnings (:&:@#@$) where suppressUnusedWarnings = snd ((GHC.Tuple.(,) (::&:@#@$###)) GHC.Tuple.()) data (:&:@#@$) (l :: TyFun a0123456789876543210 (TyFun a0123456789876543210 (Foo2 a0123456789876543210) -> GHC.Types.Type)) = forall arg. SameKind (Apply (:&:@#@$) arg) ((:&:@#@$$) arg) => (::&:@#@$###) type instance Apply (:&:@#@$) l = (:&:@#@$$) l type MkFoo3Sym2 (t :: Bool) (t :: Bool) = MkFoo3 t t instance SuppressUnusedWarnings MkFoo3Sym1 where suppressUnusedWarnings = snd ((GHC.Tuple.(,) MkFoo3Sym1KindInference) GHC.Tuple.()) data MkFoo3Sym1 (l :: Bool) (l :: TyFun Bool Foo3) = forall arg. SameKind (Apply (MkFoo3Sym1 l) arg) (MkFoo3Sym2 l arg) => MkFoo3Sym1KindInference type instance Apply (MkFoo3Sym1 l) l = MkFoo3 l l instance SuppressUnusedWarnings MkFoo3Sym0 where suppressUnusedWarnings = snd ((GHC.Tuple.(,) MkFoo3Sym0KindInference) GHC.Tuple.()) data MkFoo3Sym0 (l :: TyFun Bool (TyFun Bool Foo3 -> GHC.Types.Type)) = forall arg. SameKind (Apply MkFoo3Sym0 arg) (MkFoo3Sym1 arg) => MkFoo3Sym0KindInference type instance Apply MkFoo3Sym0 l = MkFoo3Sym1 l type family ShowsPrec_0123456789876543210 (a :: GHC.Types.Nat) (a :: Foo1) (a :: Symbol) :: Symbol where ShowsPrec_0123456789876543210 _ MkFoo1 a_0123456789876543210 = Apply (Apply ShowStringSym0 "MkFoo1") a_0123456789876543210 type ShowsPrec_0123456789876543210Sym3 (t :: GHC.Types.Nat) (t :: Foo1) (t :: 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 :: Foo1) (l :: TyFun Symbol 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 Foo1 (TyFun Symbol 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 Foo1 (TyFun Symbol 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 Foo1 where type ShowsPrec a a a = Apply (Apply (Apply ShowsPrec_0123456789876543210Sym0 a) a) a type family ShowsPrec_0123456789876543210 (a :: GHC.Types.Nat) (a :: Foo2 a) (a :: Symbol) :: Symbol where ShowsPrec_0123456789876543210 p_0123456789876543210 (MkFoo2a arg_0123456789876543210 arg_0123456789876543210) a_0123456789876543210 = Apply (Apply (Apply ShowParenSym0 (Apply (Apply (>@#@$) p_0123456789876543210) (FromInteger 10))) (Apply (Apply (.@#@$) (Apply ShowStringSym0 "MkFoo2a ")) (Apply (Apply (.@#@$) (Apply (Apply ShowsPrecSym0 (FromInteger 11)) arg_0123456789876543210)) (Apply (Apply (.@#@$) ShowSpaceSym0) (Apply (Apply ShowsPrecSym0 (FromInteger 11)) arg_0123456789876543210))))) a_0123456789876543210 ShowsPrec_0123456789876543210 p_0123456789876543210 (MkFoo2b argL_0123456789876543210 argR_0123456789876543210) a_0123456789876543210 = Apply (Apply (Apply ShowParenSym0 (Apply (Apply (>@#@$) p_0123456789876543210) (FromInteger 5))) (Apply (Apply (.@#@$) (Apply (Apply ShowsPrecSym0 (FromInteger 6)) argL_0123456789876543210)) (Apply (Apply (.@#@$) (Apply ShowStringSym0 " `MkFoo2b` ")) (Apply (Apply ShowsPrecSym0 (FromInteger 6)) argR_0123456789876543210)))) a_0123456789876543210 ShowsPrec_0123456789876543210 p_0123456789876543210 ((:*:) arg_0123456789876543210 arg_0123456789876543210) a_0123456789876543210 = Apply (Apply (Apply ShowParenSym0 (Apply (Apply (>@#@$) p_0123456789876543210) (FromInteger 10))) (Apply (Apply (.@#@$) (Apply ShowStringSym0 "(:*:) ")) (Apply (Apply (.@#@$) (Apply (Apply ShowsPrecSym0 (FromInteger 11)) arg_0123456789876543210)) (Apply (Apply (.@#@$) ShowSpaceSym0) (Apply (Apply ShowsPrecSym0 (FromInteger 11)) arg_0123456789876543210))))) a_0123456789876543210 ShowsPrec_0123456789876543210 p_0123456789876543210 ((:&:) argL_0123456789876543210 argR_0123456789876543210) a_0123456789876543210 = Apply (Apply (Apply ShowParenSym0 (Apply (Apply (>@#@$) p_0123456789876543210) (FromInteger 5))) (Apply (Apply (.@#@$) (Apply (Apply ShowsPrecSym0 (FromInteger 6)) argL_0123456789876543210)) (Apply (Apply (.@#@$) (Apply ShowStringSym0 " :&: ")) (Apply (Apply ShowsPrecSym0 (FromInteger 6)) argR_0123456789876543210)))) a_0123456789876543210 type ShowsPrec_0123456789876543210Sym3 (t :: GHC.Types.Nat) (t :: Foo2 a0123456789876543210) (t :: 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 :: Foo2 a0123456789876543210) (l :: TyFun Symbol 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 (Foo2 a0123456789876543210) (TyFun Symbol 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 (Foo2 a0123456789876543210) (TyFun Symbol 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 (Foo2 a) where type ShowsPrec a a a = Apply (Apply (Apply ShowsPrec_0123456789876543210Sym0 a) a) a type family ShowsPrec_0123456789876543210 (a :: GHC.Types.Nat) (a :: Foo3) (a :: Symbol) :: Symbol where ShowsPrec_0123456789876543210 p_0123456789876543210 (MkFoo3 arg_0123456789876543210 arg_0123456789876543210) a_0123456789876543210 = Apply (Apply (Apply ShowParenSym0 (Apply (Apply (>@#@$) p_0123456789876543210) (FromInteger 10))) (Apply (Apply (.@#@$) (Apply ShowStringSym0 "MkFoo3 ")) (Apply (Apply (.@#@$) (Apply ShowCharSym0 "{")) (Apply (Apply (.@#@$) (Apply ShowStringSym0 "getFoo3a = ")) (Apply (Apply (.@#@$) (Apply (Apply ShowsPrecSym0 (FromInteger 0)) arg_0123456789876543210)) (Apply (Apply (.@#@$) ShowCommaSpaceSym0) (Apply (Apply (.@#@$) (Apply ShowStringSym0 "(***) = ")) (Apply (Apply (.@#@$) (Apply (Apply ShowsPrecSym0 (FromInteger 0)) arg_0123456789876543210)) (Apply ShowCharSym0 "}"))))))))) a_0123456789876543210 type ShowsPrec_0123456789876543210Sym3 (t :: GHC.Types.Nat) (t :: Foo3) (t :: 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 :: Foo3) (l :: TyFun Symbol 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 Foo3 (TyFun Symbol 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 Foo3 (TyFun Symbol 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 Foo3 where type ShowsPrec a a a = Apply (Apply (Apply ShowsPrec_0123456789876543210Sym0 a) a) a infixl 5 :%&: infixl 5 :%*: infixl 5 `SMkFoo2b` data instance Sing (z :: Foo1) where SMkFoo1 :: Sing MkFoo1 type SFoo1 = (Sing :: Foo1 -> GHC.Types.Type) instance SingKind Foo1 where type Demote Foo1 = Foo1 fromSing SMkFoo1 = MkFoo1 toSing MkFoo1 = SomeSing SMkFoo1 data instance Sing (z :: Foo2 a) where SMkFoo2a :: forall (n :: a) (n :: a). (Sing (n :: a)) -> (Sing (n :: a)) -> Sing (MkFoo2a n n) SMkFoo2b :: forall (n :: a) (n :: a). (Sing (n :: a)) -> (Sing (n :: a)) -> Sing (MkFoo2b n n) (:%*:) :: forall (n :: a) (n :: a). (Sing (n :: a)) -> (Sing (n :: a)) -> Sing ((:*:) n n) (:%&:) :: forall (n :: a) (n :: a). (Sing (n :: a)) -> (Sing (n :: a)) -> Sing ((:&:) n n) type SFoo2 = (Sing :: Foo2 a -> GHC.Types.Type) instance SingKind a => SingKind (Foo2 a) where type Demote (Foo2 a) = Foo2 (Demote a) fromSing (SMkFoo2a b b) = (MkFoo2a (fromSing b)) (fromSing b) fromSing (SMkFoo2b b b) = (MkFoo2b (fromSing b)) (fromSing b) fromSing ((:%*:) b b) = ((:*:) (fromSing b)) (fromSing b) fromSing ((:%&:) b b) = ((:&:) (fromSing b)) (fromSing b) toSing (MkFoo2a (b :: Demote a) (b :: Demote a)) = case (GHC.Tuple.(,) (toSing b :: SomeSing a)) (toSing b :: SomeSing a) of { GHC.Tuple.(,) (SomeSing c) (SomeSing c) -> SomeSing ((SMkFoo2a c) c) } toSing (MkFoo2b (b :: Demote a) (b :: Demote a)) = case (GHC.Tuple.(,) (toSing b :: SomeSing a)) (toSing b :: SomeSing a) of { GHC.Tuple.(,) (SomeSing c) (SomeSing c) -> SomeSing ((SMkFoo2b c) c) } toSing ((:*:) (b :: Demote a) (b :: Demote a)) = case (GHC.Tuple.(,) (toSing b :: SomeSing a)) (toSing b :: SomeSing a) of { GHC.Tuple.(,) (SomeSing c) (SomeSing c) -> SomeSing (((:%*:) c) c) } toSing ((:&:) (b :: Demote a) (b :: Demote a)) = case (GHC.Tuple.(,) (toSing b :: SomeSing a)) (toSing b :: SomeSing a) of { GHC.Tuple.(,) (SomeSing c) (SomeSing c) -> SomeSing (((:%&:) c) c) } data instance Sing (z :: Foo3) where SMkFoo3 :: forall (n :: Bool) (n :: Bool). {sGetFoo3a :: (Sing (n :: Bool)), %*** :: (Sing (n :: Bool))} -> Sing (MkFoo3 n n) type SFoo3 = (Sing :: Foo3 -> GHC.Types.Type) instance SingKind Foo3 where type Demote Foo3 = Foo3 fromSing (SMkFoo3 b b) = (MkFoo3 (fromSing b)) (fromSing b) toSing (MkFoo3 (b :: Demote Bool) (b :: Demote Bool)) = case (GHC.Tuple.(,) (toSing b :: SomeSing Bool)) (toSing b :: SomeSing Bool) of { GHC.Tuple.(,) (SomeSing c) (SomeSing c) -> SomeSing ((SMkFoo3 c) c) } instance SShow Foo1 where sShowsPrec :: forall (t1 :: GHC.Types.Nat) (t2 :: Foo1) (t3 :: Symbol). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (ShowsPrecSym0 :: TyFun GHC.Types.Nat (TyFun Foo1 (TyFun Symbol Symbol -> GHC.Types.Type) -> GHC.Types.Type) -> GHC.Types.Type) t1) t2) t3) sShowsPrec _ SMkFoo1 (sA_0123456789876543210 :: Sing a_0123456789876543210) = (applySing ((applySing ((singFun2 @ShowStringSym0) sShowString)) (sing :: Sing "MkFoo1"))) sA_0123456789876543210 instance SShow a => SShow (Foo2 a) where sShowsPrec :: forall (t1 :: GHC.Types.Nat) (t2 :: Foo2 a) (t3 :: Symbol). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (ShowsPrecSym0 :: TyFun GHC.Types.Nat (TyFun (Foo2 a) (TyFun Symbol Symbol -> GHC.Types.Type) -> GHC.Types.Type) -> GHC.Types.Type) t1) t2) t3) sShowsPrec (sP_0123456789876543210 :: Sing p_0123456789876543210) (SMkFoo2a (sArg_0123456789876543210 :: Sing arg_0123456789876543210) (sArg_0123456789876543210 :: Sing arg_0123456789876543210)) (sA_0123456789876543210 :: Sing a_0123456789876543210) = (applySing ((applySing ((applySing ((singFun3 @ShowParenSym0) sShowParen)) ((applySing ((applySing ((singFun2 @(>@#@$)) (%>))) sP_0123456789876543210)) (sFromInteger (sing :: Sing 10))))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((singFun2 @ShowStringSym0) sShowString)) (sing :: Sing "MkFoo2a ")))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((applySing ((singFun3 @ShowsPrecSym0) sShowsPrec)) (sFromInteger (sing :: Sing 11)))) sArg_0123456789876543210))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((singFun1 @ShowSpaceSym0) sShowSpace))) ((applySing ((applySing ((singFun3 @ShowsPrecSym0) sShowsPrec)) (sFromInteger (sing :: Sing 11)))) sArg_0123456789876543210)))))) sA_0123456789876543210 sShowsPrec (sP_0123456789876543210 :: Sing p_0123456789876543210) (SMkFoo2b (sArgL_0123456789876543210 :: Sing argL_0123456789876543210) (sArgR_0123456789876543210 :: Sing argR_0123456789876543210)) (sA_0123456789876543210 :: Sing a_0123456789876543210) = (applySing ((applySing ((applySing ((singFun3 @ShowParenSym0) sShowParen)) ((applySing ((applySing ((singFun2 @(>@#@$)) (%>))) sP_0123456789876543210)) (sFromInteger (sing :: Sing 5))))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((applySing ((singFun3 @ShowsPrecSym0) sShowsPrec)) (sFromInteger (sing :: Sing 6)))) sArgL_0123456789876543210))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((singFun2 @ShowStringSym0) sShowString)) (sing :: Sing " `MkFoo2b` ")))) ((applySing ((applySing ((singFun3 @ShowsPrecSym0) sShowsPrec)) (sFromInteger (sing :: Sing 6)))) sArgR_0123456789876543210))))) sA_0123456789876543210 sShowsPrec (sP_0123456789876543210 :: Sing p_0123456789876543210) ((:%*:) (sArg_0123456789876543210 :: Sing arg_0123456789876543210) (sArg_0123456789876543210 :: Sing arg_0123456789876543210)) (sA_0123456789876543210 :: Sing a_0123456789876543210) = (applySing ((applySing ((applySing ((singFun3 @ShowParenSym0) sShowParen)) ((applySing ((applySing ((singFun2 @(>@#@$)) (%>))) sP_0123456789876543210)) (sFromInteger (sing :: Sing 10))))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((singFun2 @ShowStringSym0) sShowString)) (sing :: Sing "(:*:) ")))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((applySing ((singFun3 @ShowsPrecSym0) sShowsPrec)) (sFromInteger (sing :: Sing 11)))) sArg_0123456789876543210))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((singFun1 @ShowSpaceSym0) sShowSpace))) ((applySing ((applySing ((singFun3 @ShowsPrecSym0) sShowsPrec)) (sFromInteger (sing :: Sing 11)))) sArg_0123456789876543210)))))) sA_0123456789876543210 sShowsPrec (sP_0123456789876543210 :: Sing p_0123456789876543210) ((:%&:) (sArgL_0123456789876543210 :: Sing argL_0123456789876543210) (sArgR_0123456789876543210 :: Sing argR_0123456789876543210)) (sA_0123456789876543210 :: Sing a_0123456789876543210) = (applySing ((applySing ((applySing ((singFun3 @ShowParenSym0) sShowParen)) ((applySing ((applySing ((singFun2 @(>@#@$)) (%>))) sP_0123456789876543210)) (sFromInteger (sing :: Sing 5))))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((applySing ((singFun3 @ShowsPrecSym0) sShowsPrec)) (sFromInteger (sing :: Sing 6)))) sArgL_0123456789876543210))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((singFun2 @ShowStringSym0) sShowString)) (sing :: Sing " :&: ")))) ((applySing ((applySing ((singFun3 @ShowsPrecSym0) sShowsPrec)) (sFromInteger (sing :: Sing 6)))) sArgR_0123456789876543210))))) sA_0123456789876543210 instance SShow Bool => SShow Foo3 where sShowsPrec :: forall (t1 :: GHC.Types.Nat) (t2 :: Foo3) (t3 :: Symbol). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (ShowsPrecSym0 :: TyFun GHC.Types.Nat (TyFun Foo3 (TyFun Symbol Symbol -> GHC.Types.Type) -> GHC.Types.Type) -> GHC.Types.Type) t1) t2) t3) sShowsPrec (sP_0123456789876543210 :: Sing p_0123456789876543210) (SMkFoo3 (sArg_0123456789876543210 :: Sing arg_0123456789876543210) (sArg_0123456789876543210 :: Sing arg_0123456789876543210)) (sA_0123456789876543210 :: Sing a_0123456789876543210) = (applySing ((applySing ((applySing ((singFun3 @ShowParenSym0) sShowParen)) ((applySing ((applySing ((singFun2 @(>@#@$)) (%>))) sP_0123456789876543210)) (sFromInteger (sing :: Sing 10))))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((singFun2 @ShowStringSym0) sShowString)) (sing :: Sing "MkFoo3 ")))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((singFun2 @ShowCharSym0) sShowChar)) (sing :: Sing "{")))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((singFun2 @ShowStringSym0) sShowString)) (sing :: Sing "getFoo3a = ")))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((applySing ((singFun3 @ShowsPrecSym0) sShowsPrec)) (sFromInteger (sing :: Sing 0)))) sArg_0123456789876543210))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((singFun1 @ShowCommaSpaceSym0) sShowCommaSpace))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((singFun2 @ShowStringSym0) sShowString)) (sing :: Sing "(***) = ")))) ((applySing ((applySing ((singFun3 @(.@#@$)) (%.))) ((applySing ((applySing ((singFun3 @ShowsPrecSym0) sShowsPrec)) (sFromInteger (sing :: Sing 0)))) sArg_0123456789876543210))) ((applySing ((singFun2 @ShowCharSym0) sShowChar)) (sing :: Sing "}"))))))))))) sA_0123456789876543210 instance Data.Singletons.ShowSing.ShowSing Foo1 where Data.Singletons.ShowSing.showsSingPrec _ SMkFoo1 = showString "SMkFoo1" instance Show (Sing (z :: Foo1)) where showsPrec = Data.Singletons.ShowSing.showsSingPrec instance Data.Singletons.ShowSing.ShowSing a => Data.Singletons.ShowSing.ShowSing (Foo2 a) where Data.Singletons.ShowSing.showsSingPrec p_0123456789876543210 (SMkFoo2a arg_0123456789876543210 arg_0123456789876543210) = (showParen (((>) p_0123456789876543210) 10)) (((.) (showString "SMkFoo2a ")) (((.) ((Data.Singletons.ShowSing.showsSingPrec 11) arg_0123456789876543210)) (((.) GHC.Show.showSpace) ((Data.Singletons.ShowSing.showsSingPrec 11) arg_0123456789876543210)))) Data.Singletons.ShowSing.showsSingPrec p_0123456789876543210 (SMkFoo2b argL_0123456789876543210 argR_0123456789876543210) = (showParen (((>) p_0123456789876543210) 9)) (((.) ((Data.Singletons.ShowSing.showsSingPrec 10) argL_0123456789876543210)) (((.) (showString " `SMkFoo2b` ")) ((Data.Singletons.ShowSing.showsSingPrec 10) argR_0123456789876543210))) Data.Singletons.ShowSing.showsSingPrec p_0123456789876543210 ((:%*:) arg_0123456789876543210 arg_0123456789876543210) = (showParen (((>) p_0123456789876543210) 10)) (((.) (showString "(:%*:) ")) (((.) ((Data.Singletons.ShowSing.showsSingPrec 11) arg_0123456789876543210)) (((.) GHC.Show.showSpace) ((Data.Singletons.ShowSing.showsSingPrec 11) arg_0123456789876543210)))) Data.Singletons.ShowSing.showsSingPrec p_0123456789876543210 ((:%&:) argL_0123456789876543210 argR_0123456789876543210) = (showParen (((>) p_0123456789876543210) 9)) (((.) ((Data.Singletons.ShowSing.showsSingPrec 10) argL_0123456789876543210)) (((.) (showString " :%&: ")) ((Data.Singletons.ShowSing.showsSingPrec 10) argR_0123456789876543210))) instance Data.Singletons.ShowSing.ShowSing a => Show (Sing (z :: Foo2 a)) where showsPrec = Data.Singletons.ShowSing.showsSingPrec instance Data.Singletons.ShowSing.ShowSing Bool => Data.Singletons.ShowSing.ShowSing Foo3 where Data.Singletons.ShowSing.showsSingPrec p_0123456789876543210 (SMkFoo3 arg_0123456789876543210 arg_0123456789876543210) = (showParen (((>) p_0123456789876543210) 10)) (((.) (showString "SMkFoo3 ")) (((.) (showChar '{')) (((.) (showString "sGetFoo3a = ")) (((.) ((Data.Singletons.ShowSing.showsSingPrec 0) arg_0123456789876543210)) (((.) GHC.Show.showCommaSpace) (((.) (showString "(%***) = ")) (((.) ((Data.Singletons.ShowSing.showsSingPrec 0) arg_0123456789876543210)) (showChar '}')))))))) instance Data.Singletons.ShowSing.ShowSing Bool => Show (Sing (z :: Foo3)) where showsPrec = Data.Singletons.ShowSing.showsSingPrec instance SingI MkFoo1 where sing = SMkFoo1 instance (SingI n, SingI n) => SingI (MkFoo2a (n :: a) (n :: a)) where sing = (SMkFoo2a sing) sing instance (SingI n, SingI n) => SingI (MkFoo2b (n :: a) (n :: a)) where sing = (SMkFoo2b sing) sing instance (SingI n, SingI n) => SingI ((:*:) (n :: a) (n :: a)) where sing = ((:%*:) sing) sing instance (SingI n, SingI n) => SingI ((:&:) (n :: a) (n :: a)) where sing = ((:%&:) sing) sing instance (SingI n, SingI n) => SingI (MkFoo3 (n :: Bool) (n :: Bool)) where sing = (SMkFoo3 sing) sing