Singletons/T190.hs:0:0:: Splicing declarations singletons [d| data T = T deriving (Eq, Ord, Enum, Bounded, Show) |] ======> data T = T deriving (Eq, Ord, Enum, Bounded, Show) type TSym0 :: T type family TSym0 :: T where TSym0 = T type TFHelper_0123456789876543210 :: T -> T -> Bool type family TFHelper_0123456789876543210 (a :: T) (a :: T) :: Bool where TFHelper_0123456789876543210 T T = TrueSym0 type TFHelper_0123456789876543210Sym0 :: (~>) T ((~>) T Bool) data TFHelper_0123456789876543210Sym0 :: (~>) T ((~>) T Bool) where TFHelper_0123456789876543210Sym0KindInference :: SameKind (Apply TFHelper_0123456789876543210Sym0 arg) (TFHelper_0123456789876543210Sym1 arg) => TFHelper_0123456789876543210Sym0 a0123456789876543210 type instance Apply TFHelper_0123456789876543210Sym0 a0123456789876543210 = TFHelper_0123456789876543210Sym1 a0123456789876543210 instance SuppressUnusedWarnings TFHelper_0123456789876543210Sym0 where suppressUnusedWarnings = snd (((,) TFHelper_0123456789876543210Sym0KindInference) ()) type TFHelper_0123456789876543210Sym1 :: T -> (~>) T Bool data TFHelper_0123456789876543210Sym1 (a0123456789876543210 :: T) :: (~>) T Bool where TFHelper_0123456789876543210Sym1KindInference :: SameKind (Apply (TFHelper_0123456789876543210Sym1 a0123456789876543210) arg) (TFHelper_0123456789876543210Sym2 a0123456789876543210 arg) => TFHelper_0123456789876543210Sym1 a0123456789876543210 a0123456789876543210 type instance Apply (TFHelper_0123456789876543210Sym1 a0123456789876543210) a0123456789876543210 = TFHelper_0123456789876543210 a0123456789876543210 a0123456789876543210 instance SuppressUnusedWarnings (TFHelper_0123456789876543210Sym1 a0123456789876543210) where suppressUnusedWarnings = snd (((,) TFHelper_0123456789876543210Sym1KindInference) ()) type TFHelper_0123456789876543210Sym2 :: T -> T -> Bool type family TFHelper_0123456789876543210Sym2 (a0123456789876543210 :: T) (a0123456789876543210 :: T) :: Bool where TFHelper_0123456789876543210Sym2 a0123456789876543210 a0123456789876543210 = TFHelper_0123456789876543210 a0123456789876543210 a0123456789876543210 instance PEq T where type (==) a a = Apply (Apply TFHelper_0123456789876543210Sym0 a) a type Compare_0123456789876543210 :: T -> T -> Ordering type family Compare_0123456789876543210 (a :: T) (a :: T) :: Ordering where Compare_0123456789876543210 T T = Apply (Apply (Apply FoldlSym0 ThenCmpSym0) EQSym0) NilSym0 type Compare_0123456789876543210Sym0 :: (~>) T ((~>) T Ordering) data Compare_0123456789876543210Sym0 :: (~>) T ((~>) T Ordering) where Compare_0123456789876543210Sym0KindInference :: SameKind (Apply Compare_0123456789876543210Sym0 arg) (Compare_0123456789876543210Sym1 arg) => Compare_0123456789876543210Sym0 a0123456789876543210 type instance Apply Compare_0123456789876543210Sym0 a0123456789876543210 = Compare_0123456789876543210Sym1 a0123456789876543210 instance SuppressUnusedWarnings Compare_0123456789876543210Sym0 where suppressUnusedWarnings = snd (((,) Compare_0123456789876543210Sym0KindInference) ()) type Compare_0123456789876543210Sym1 :: T -> (~>) T Ordering data Compare_0123456789876543210Sym1 (a0123456789876543210 :: T) :: (~>) T Ordering where Compare_0123456789876543210Sym1KindInference :: SameKind (Apply (Compare_0123456789876543210Sym1 a0123456789876543210) arg) (Compare_0123456789876543210Sym2 a0123456789876543210 arg) => Compare_0123456789876543210Sym1 a0123456789876543210 a0123456789876543210 type instance Apply (Compare_0123456789876543210Sym1 a0123456789876543210) a0123456789876543210 = Compare_0123456789876543210 a0123456789876543210 a0123456789876543210 instance SuppressUnusedWarnings (Compare_0123456789876543210Sym1 a0123456789876543210) where suppressUnusedWarnings = snd (((,) Compare_0123456789876543210Sym1KindInference) ()) type Compare_0123456789876543210Sym2 :: T -> T -> Ordering type family Compare_0123456789876543210Sym2 (a0123456789876543210 :: T) (a0123456789876543210 :: T) :: Ordering where Compare_0123456789876543210Sym2 a0123456789876543210 a0123456789876543210 = Compare_0123456789876543210 a0123456789876543210 a0123456789876543210 instance POrd T where type Compare a a = Apply (Apply Compare_0123456789876543210Sym0 a) a type family Case_0123456789876543210 n t where Case_0123456789876543210 n 'True = TSym0 Case_0123456789876543210 n 'False = Apply ErrorSym0 "toEnum: bad argument" type ToEnum_0123456789876543210 :: GHC.Num.Natural.Natural -> T type family ToEnum_0123456789876543210 (a :: GHC.Num.Natural.Natural) :: T where ToEnum_0123456789876543210 n = Case_0123456789876543210 n (Apply (Apply (==@#@$) n) (FromInteger 0)) type ToEnum_0123456789876543210Sym0 :: (~>) GHC.Num.Natural.Natural T data ToEnum_0123456789876543210Sym0 :: (~>) GHC.Num.Natural.Natural T where ToEnum_0123456789876543210Sym0KindInference :: SameKind (Apply ToEnum_0123456789876543210Sym0 arg) (ToEnum_0123456789876543210Sym1 arg) => ToEnum_0123456789876543210Sym0 a0123456789876543210 type instance Apply ToEnum_0123456789876543210Sym0 a0123456789876543210 = ToEnum_0123456789876543210 a0123456789876543210 instance SuppressUnusedWarnings ToEnum_0123456789876543210Sym0 where suppressUnusedWarnings = snd (((,) ToEnum_0123456789876543210Sym0KindInference) ()) type ToEnum_0123456789876543210Sym1 :: GHC.Num.Natural.Natural -> T type family ToEnum_0123456789876543210Sym1 (a0123456789876543210 :: GHC.Num.Natural.Natural) :: T where ToEnum_0123456789876543210Sym1 a0123456789876543210 = ToEnum_0123456789876543210 a0123456789876543210 type FromEnum_0123456789876543210 :: T -> GHC.Num.Natural.Natural type family FromEnum_0123456789876543210 (a :: T) :: GHC.Num.Natural.Natural where FromEnum_0123456789876543210 T = FromInteger 0 type FromEnum_0123456789876543210Sym0 :: (~>) T GHC.Num.Natural.Natural data FromEnum_0123456789876543210Sym0 :: (~>) T GHC.Num.Natural.Natural where FromEnum_0123456789876543210Sym0KindInference :: SameKind (Apply FromEnum_0123456789876543210Sym0 arg) (FromEnum_0123456789876543210Sym1 arg) => FromEnum_0123456789876543210Sym0 a0123456789876543210 type instance Apply FromEnum_0123456789876543210Sym0 a0123456789876543210 = FromEnum_0123456789876543210 a0123456789876543210 instance SuppressUnusedWarnings FromEnum_0123456789876543210Sym0 where suppressUnusedWarnings = snd (((,) FromEnum_0123456789876543210Sym0KindInference) ()) type FromEnum_0123456789876543210Sym1 :: T -> GHC.Num.Natural.Natural type family FromEnum_0123456789876543210Sym1 (a0123456789876543210 :: T) :: GHC.Num.Natural.Natural where FromEnum_0123456789876543210Sym1 a0123456789876543210 = FromEnum_0123456789876543210 a0123456789876543210 instance PEnum T where type ToEnum a = Apply ToEnum_0123456789876543210Sym0 a type FromEnum a = Apply FromEnum_0123456789876543210Sym0 a type MinBound_0123456789876543210 :: T type family MinBound_0123456789876543210 :: T where MinBound_0123456789876543210 = TSym0 type MinBound_0123456789876543210Sym0 :: T type family MinBound_0123456789876543210Sym0 :: T where MinBound_0123456789876543210Sym0 = MinBound_0123456789876543210 type MaxBound_0123456789876543210 :: T type family MaxBound_0123456789876543210 :: T where MaxBound_0123456789876543210 = TSym0 type MaxBound_0123456789876543210Sym0 :: T type family MaxBound_0123456789876543210Sym0 :: T where MaxBound_0123456789876543210Sym0 = MaxBound_0123456789876543210 instance PBounded T where type MinBound = MinBound_0123456789876543210Sym0 type MaxBound = MaxBound_0123456789876543210Sym0 type ShowsPrec_0123456789876543210 :: GHC.Num.Natural.Natural -> T -> GHC.Types.Symbol -> GHC.Types.Symbol type family ShowsPrec_0123456789876543210 (a :: GHC.Num.Natural.Natural) (a :: T) (a :: GHC.Types.Symbol) :: GHC.Types.Symbol where ShowsPrec_0123456789876543210 _ T a_0123456789876543210 = Apply (Apply ShowStringSym0 "T") a_0123456789876543210 type ShowsPrec_0123456789876543210Sym0 :: (~>) GHC.Num.Natural.Natural ((~>) T ((~>) GHC.Types.Symbol GHC.Types.Symbol)) data ShowsPrec_0123456789876543210Sym0 :: (~>) GHC.Num.Natural.Natural ((~>) T ((~>) GHC.Types.Symbol GHC.Types.Symbol)) where ShowsPrec_0123456789876543210Sym0KindInference :: SameKind (Apply ShowsPrec_0123456789876543210Sym0 arg) (ShowsPrec_0123456789876543210Sym1 arg) => ShowsPrec_0123456789876543210Sym0 a0123456789876543210 type instance Apply ShowsPrec_0123456789876543210Sym0 a0123456789876543210 = ShowsPrec_0123456789876543210Sym1 a0123456789876543210 instance SuppressUnusedWarnings ShowsPrec_0123456789876543210Sym0 where suppressUnusedWarnings = snd (((,) ShowsPrec_0123456789876543210Sym0KindInference) ()) type ShowsPrec_0123456789876543210Sym1 :: GHC.Num.Natural.Natural -> (~>) T ((~>) GHC.Types.Symbol GHC.Types.Symbol) data ShowsPrec_0123456789876543210Sym1 (a0123456789876543210 :: GHC.Num.Natural.Natural) :: (~>) T ((~>) GHC.Types.Symbol GHC.Types.Symbol) where ShowsPrec_0123456789876543210Sym1KindInference :: SameKind (Apply (ShowsPrec_0123456789876543210Sym1 a0123456789876543210) arg) (ShowsPrec_0123456789876543210Sym2 a0123456789876543210 arg) => ShowsPrec_0123456789876543210Sym1 a0123456789876543210 a0123456789876543210 type instance Apply (ShowsPrec_0123456789876543210Sym1 a0123456789876543210) a0123456789876543210 = ShowsPrec_0123456789876543210Sym2 a0123456789876543210 a0123456789876543210 instance SuppressUnusedWarnings (ShowsPrec_0123456789876543210Sym1 a0123456789876543210) where suppressUnusedWarnings = snd (((,) ShowsPrec_0123456789876543210Sym1KindInference) ()) type ShowsPrec_0123456789876543210Sym2 :: GHC.Num.Natural.Natural -> T -> (~>) GHC.Types.Symbol GHC.Types.Symbol data ShowsPrec_0123456789876543210Sym2 (a0123456789876543210 :: GHC.Num.Natural.Natural) (a0123456789876543210 :: T) :: (~>) GHC.Types.Symbol GHC.Types.Symbol where ShowsPrec_0123456789876543210Sym2KindInference :: SameKind (Apply (ShowsPrec_0123456789876543210Sym2 a0123456789876543210 a0123456789876543210) arg) (ShowsPrec_0123456789876543210Sym3 a0123456789876543210 a0123456789876543210 arg) => ShowsPrec_0123456789876543210Sym2 a0123456789876543210 a0123456789876543210 a0123456789876543210 type instance Apply (ShowsPrec_0123456789876543210Sym2 a0123456789876543210 a0123456789876543210) a0123456789876543210 = ShowsPrec_0123456789876543210 a0123456789876543210 a0123456789876543210 a0123456789876543210 instance SuppressUnusedWarnings (ShowsPrec_0123456789876543210Sym2 a0123456789876543210 a0123456789876543210) where suppressUnusedWarnings = snd (((,) ShowsPrec_0123456789876543210Sym2KindInference) ()) type ShowsPrec_0123456789876543210Sym3 :: GHC.Num.Natural.Natural -> T -> GHC.Types.Symbol -> GHC.Types.Symbol type family ShowsPrec_0123456789876543210Sym3 (a0123456789876543210 :: GHC.Num.Natural.Natural) (a0123456789876543210 :: T) (a0123456789876543210 :: GHC.Types.Symbol) :: GHC.Types.Symbol where ShowsPrec_0123456789876543210Sym3 a0123456789876543210 a0123456789876543210 a0123456789876543210 = ShowsPrec_0123456789876543210 a0123456789876543210 a0123456789876543210 a0123456789876543210 instance PShow T where type ShowsPrec a a a = Apply (Apply (Apply ShowsPrec_0123456789876543210Sym0 a) a) a data ST :: T -> Type where ST :: ST (T :: T) type instance Sing @T = ST instance SingKind T where type Demote T = T fromSing ST = T toSing T = SomeSing ST instance SEq T where (%==) :: forall (t1 :: T) (t2 :: T). Sing t1 -> Sing t2 -> Sing (Apply (Apply ((==@#@$) :: TyFun T ((~>) T Bool) -> Type) t1) t2) (%==) ST ST = STrue instance SOrd T where sCompare :: forall (t1 :: T) (t2 :: T). Sing t1 -> Sing t2 -> Sing (Apply (Apply (CompareSym0 :: TyFun T ((~>) T Ordering) -> Type) t1) t2) sCompare ST ST = (applySing ((applySing ((applySing ((singFun3 @FoldlSym0) sFoldl)) ((singFun2 @ThenCmpSym0) sThenCmp))) SEQ)) SNil instance SEnum T where sToEnum :: forall (t :: GHC.Num.Natural.Natural). Sing t -> Sing (Apply (Data.Singletons.Base.Enum.ToEnumSym0 :: TyFun GHC.Num.Natural.Natural T -> Type) t) sFromEnum :: forall (t :: T). Sing t -> Sing (Apply (Data.Singletons.Base.Enum.FromEnumSym0 :: TyFun T GHC.Num.Natural.Natural -> Type) t) sToEnum (sN :: Sing n) = (id @(Sing (Case_0123456789876543210 n (Apply (Apply (==@#@$) n) (FromInteger 0))))) (case (applySing ((applySing ((singFun2 @(==@#@$)) (%==))) sN)) (sFromInteger (sing :: Sing 0)) of STrue -> ST SFalse -> sError (sing :: Sing "toEnum: bad argument")) sFromEnum ST = sFromInteger (sing :: Sing 0) instance SBounded T where sMinBound :: Sing (MinBoundSym0 :: T) sMaxBound :: Sing (MaxBoundSym0 :: T) sMinBound = ST sMaxBound = ST instance SShow T where sShowsPrec :: forall (t1 :: GHC.Num.Natural.Natural) (t2 :: T) (t3 :: GHC.Types.Symbol). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (ShowsPrecSym0 :: TyFun GHC.Num.Natural.Natural ((~>) T ((~>) GHC.Types.Symbol GHC.Types.Symbol)) -> Type) t1) t2) t3) sShowsPrec _ ST (sA_0123456789876543210 :: Sing a_0123456789876543210) = (applySing ((applySing ((singFun2 @ShowStringSym0) sShowString)) (sing :: Sing "T"))) sA_0123456789876543210 instance SDecide T where (%~) ST ST = Proved Refl instance Data.Type.Equality.TestEquality (ST :: T -> Type) where Data.Type.Equality.testEquality = Data.Singletons.Decide.decideEquality instance Data.Type.Coercion.TestCoercion (ST :: T -> Type) where Data.Type.Coercion.testCoercion = Data.Singletons.Decide.decideCoercion deriving instance Show (ST (z :: T)) instance SingI T where sing = ST