Singletons/T326.hs:0:0:: Splicing declarations genPromotions [''C1] ======> type (<%>@#@$) :: forall a. (~>) a ((~>) a a) data (<%>@#@$) :: (~>) a ((~>) a a) where (:<%>@#@$###) :: SameKind (Apply (<%>@#@$) arg) ((<%>@#@$$) arg) => (<%>@#@$) a0123456789876543210 type instance Apply (<%>@#@$) a0123456789876543210 = (<%>@#@$$) a0123456789876543210 instance SuppressUnusedWarnings (<%>@#@$) where suppressUnusedWarnings = snd ((,) (:<%>@#@$###) ()) infixl 9 <%>@#@$ type (<%>@#@$$) :: forall a. a -> (~>) a a data (<%>@#@$$) (a0123456789876543210 :: a) :: (~>) a a where (:<%>@#@$$###) :: SameKind (Apply ((<%>@#@$$) a0123456789876543210) arg) ((<%>@#@$$$) a0123456789876543210 arg) => (<%>@#@$$) a0123456789876543210 a0123456789876543210 type instance Apply ((<%>@#@$$) a0123456789876543210) a0123456789876543210 = (<%>) a0123456789876543210 a0123456789876543210 instance SuppressUnusedWarnings ((<%>@#@$$) a0123456789876543210) where suppressUnusedWarnings = snd ((,) (:<%>@#@$$###) ()) infixl 9 <%>@#@$$ type (<%>@#@$$$) :: forall a. a -> a -> a type family (<%>@#@$$$) (a0123456789876543210 :: a) (a0123456789876543210 :: a) :: a where (<%>@#@$$$) a0123456789876543210 a0123456789876543210 = (<%>) a0123456789876543210 a0123456789876543210 infixl 9 <%>@#@$$$ type PC1 :: Type -> Constraint class PC1 (a :: Type) where type family (<%>) (arg :: a) (arg :: a) :: a infixl 9 <%> Singletons/T326.hs:0:0:: Splicing declarations genSingletons [''C2] ======> type (<%%>@#@$) :: forall a. (~>) a ((~>) a a) data (<%%>@#@$) :: (~>) a ((~>) a a) where (:<%%>@#@$###) :: SameKind (Apply (<%%>@#@$) arg) ((<%%>@#@$$) arg) => (<%%>@#@$) a0123456789876543210 type instance Apply (<%%>@#@$) a0123456789876543210 = (<%%>@#@$$) a0123456789876543210 instance SuppressUnusedWarnings (<%%>@#@$) where suppressUnusedWarnings = snd ((,) (:<%%>@#@$###) ()) infixl 9 <%%>@#@$ type (<%%>@#@$$) :: forall a. a -> (~>) a a data (<%%>@#@$$) (a0123456789876543210 :: a) :: (~>) a a where (:<%%>@#@$$###) :: SameKind (Apply ((<%%>@#@$$) a0123456789876543210) arg) ((<%%>@#@$$$) a0123456789876543210 arg) => (<%%>@#@$$) a0123456789876543210 a0123456789876543210 type instance Apply ((<%%>@#@$$) a0123456789876543210) a0123456789876543210 = (<%%>) a0123456789876543210 a0123456789876543210 instance SuppressUnusedWarnings ((<%%>@#@$$) a0123456789876543210) where suppressUnusedWarnings = snd ((,) (:<%%>@#@$$###) ()) infixl 9 <%%>@#@$$ type (<%%>@#@$$$) :: forall a. a -> a -> a type family (<%%>@#@$$$) (a0123456789876543210 :: a) (a0123456789876543210 :: a) :: a where (<%%>@#@$$$) a0123456789876543210 a0123456789876543210 = (<%%>) a0123456789876543210 a0123456789876543210 infixl 9 <%%>@#@$$$ type PC2 :: Type -> Constraint class PC2 (a :: Type) where type family (<%%>) (arg :: a) (arg :: a) :: a infixl 9 <%%> class SC2 (a :: Type) where (%<%%>) :: (forall (t :: a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply (<%%>@#@$) t) t :: a) :: Type) type SC2 :: Type -> Constraint infixl 9 %<%%> instance SC2 a => SingI ((<%%>@#@$) :: (~>) a ((~>) a a)) where sing = singFun2 @(<%%>@#@$) (%<%%>) instance (SC2 a, SingI d) => SingI ((<%%>@#@$$) (d :: a) :: (~>) a a) where sing = singFun1 @((<%%>@#@$$) (d :: a)) ((%<%%>) (sing @d)) instance SC2 a => SingI1 ((<%%>@#@$$) :: a -> (~>) a a) where liftSing (s :: Sing (d :: a)) = singFun1 @((<%%>@#@$$) (d :: a)) ((%<%%>) s)