GradingClient/Database.hs:0:0: Splicing declarations singletons [d| data Nat = Zero | Succ Nat deriving (Eq, Ord) |] ======> GradingClient/Database.hs:(0,0)-(0,0) data Nat = Zero | Succ Nat deriving (Eq, Ord) type family Equals_0123456789 (a :: Nat) (b :: Nat) :: Bool where Equals_0123456789 Zero Zero = True Equals_0123456789 (Succ a) (Succ b) = (==) a b Equals_0123456789 (a :: Nat) (b :: Nat) = False type instance (==) (a :: Nat) (b :: Nat) = Equals_0123456789 a b data instance Sing (z :: Nat) = z ~ Zero => SZero | forall (n :: Nat). z ~ Succ n => SSucc (Sing n) type SNat (z :: Nat) = Sing z instance SingKind (KProxy :: KProxy Nat) where type DemoteRep (KProxy :: KProxy Nat) = Nat fromSing SZero = Zero fromSing (SSucc b) = Succ (fromSing b) toSing Zero = SomeSing SZero toSing (Succ b) = case toSing b :: SomeSing (KProxy :: KProxy Nat) of { SomeSing c -> SomeSing (SSucc c) } instance SEq (KProxy :: KProxy Nat) where (%:==) SZero SZero = STrue (%:==) SZero (SSucc _) = SFalse (%:==) (SSucc _) SZero = SFalse (%:==) (SSucc a) (SSucc b) = (%:==) a b instance SDecide (KProxy :: KProxy Nat) where (%~) SZero SZero = Proved Refl (%~) SZero (SSucc _) = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) (SSucc _) SZero = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) (SSucc a) (SSucc b) = case (%~) a b of { Proved Refl -> Proved Refl Disproved contra -> Disproved (\ Refl -> contra Refl) } instance SingI Zero where sing = SZero instance SingI n => SingI (Succ (n :: Nat)) where sing = SSucc sing GradingClient/Database.hs:0:0: Splicing declarations singletons [d| append :: Schema -> Schema -> Schema append (Sch s1) (Sch s2) = Sch (s1 ++ s2) attrNotIn :: Attribute -> Schema -> Bool attrNotIn _ (Sch []) = True attrNotIn (Attr name u) (Sch ((Attr name' _) : t)) = (name /= name') && (attrNotIn (Attr name u) (Sch t)) disjoint :: Schema -> Schema -> Bool disjoint (Sch []) _ = True disjoint (Sch (h : t)) s = (attrNotIn h s) && (disjoint (Sch t) s) occurs :: [AChar] -> Schema -> Bool occurs _ (Sch []) = False occurs name (Sch ((Attr name' _) : attrs)) = name == name' || occurs name (Sch attrs) lookup :: [AChar] -> Schema -> U lookup _ (Sch []) = undefined lookup name (Sch ((Attr name' u) : attrs)) = if name == name' then u else lookup name (Sch attrs) data U = BOOL | STRING | NAT | VEC U Nat deriving (Read, Eq, Show) data AChar = CA | CB | CC | CD | CE | CF | CG | CH | CI | CJ | CK | CL | CM | CN | CO | CP | CQ | CR | CS | CT | CU | CV | CW | CX | CY | CZ deriving (Read, Show, Eq) data Attribute = Attr [AChar] U data Schema = Sch [Attribute] |] ======> GradingClient/Database.hs:(0,0)-(0,0) data U = BOOL | STRING | NAT | VEC U Nat deriving (Read, Eq, Show) data AChar = CA | CB | CC | CD | CE | CF | CG | CH | CI | CJ | CK | CL | CM | CN | CO | CP | CQ | CR | CS | CT | CU | CV | CW | CX | CY | CZ deriving (Read, Show, Eq) data Attribute = Attr [AChar] U data Schema = Sch [Attribute] append :: Schema -> Schema -> Schema append (Sch s1) (Sch s2) = Sch (s1 ++ s2) attrNotIn :: Attribute -> Schema -> Bool attrNotIn _ (Sch GHC.Types.[]) = True attrNotIn (Attr name u) (Sch ((Attr name' _) GHC.Types.: t)) = ((name /= name') && (attrNotIn (Attr name u) (Sch t))) disjoint :: Schema -> Schema -> Bool disjoint (Sch GHC.Types.[]) _ = True disjoint (Sch (h GHC.Types.: t)) s = ((attrNotIn h s) && (disjoint (Sch t) s)) occurs :: [AChar] -> Schema -> Bool occurs _ (Sch GHC.Types.[]) = False occurs name (Sch ((Attr name' _) GHC.Types.: attrs)) = ((name == name') || (occurs name (Sch attrs))) lookup :: [AChar] -> Schema -> U lookup _ (Sch GHC.Types.[]) = undefined lookup name (Sch ((Attr name' u) GHC.Types.: attrs)) = if (name == name') then u else lookup name (Sch attrs) type family Equals_0123456789 (a :: U) (b :: U) :: Bool where Equals_0123456789 BOOL BOOL = True Equals_0123456789 STRING STRING = True Equals_0123456789 NAT NAT = True Equals_0123456789 (VEC a a) (VEC b b) = (:&&) ((==) a b) ((==) a b) Equals_0123456789 (a :: U) (b :: U) = False type instance (==) (a :: U) (b :: U) = Equals_0123456789 a b type family Equals_0123456789 (a :: AChar) (b :: AChar) :: Bool where Equals_0123456789 CA CA = True Equals_0123456789 CB CB = True Equals_0123456789 CC CC = True Equals_0123456789 CD CD = True Equals_0123456789 CE CE = True Equals_0123456789 CF CF = True Equals_0123456789 CG CG = True Equals_0123456789 CH CH = True Equals_0123456789 CI CI = True Equals_0123456789 CJ CJ = True Equals_0123456789 CK CK = True Equals_0123456789 CL CL = True Equals_0123456789 CM CM = True Equals_0123456789 CN CN = True Equals_0123456789 CO CO = True Equals_0123456789 CP CP = True Equals_0123456789 CQ CQ = True Equals_0123456789 CR CR = True Equals_0123456789 CS CS = True Equals_0123456789 CT CT = True Equals_0123456789 CU CU = True Equals_0123456789 CV CV = True Equals_0123456789 CW CW = True Equals_0123456789 CX CX = True Equals_0123456789 CY CY = True Equals_0123456789 CZ CZ = True Equals_0123456789 (a :: AChar) (b :: AChar) = False type instance (==) (a :: AChar) (b :: AChar) = Equals_0123456789 a b type family Append (a :: Schema) (a :: Schema) :: Schema where Append (Sch s1) (Sch s2) = Sch ((:++) s1 s2) type family AttrNotIn (a :: Attribute) (a :: Schema) :: Bool where AttrNotIn z (Sch GHC.Types.[]) = True AttrNotIn (Attr name u) (Sch ((GHC.Types.:) (Attr name' z) t)) = (:&&) ((:/=) name name') (AttrNotIn (Attr name u) (Sch t)) type family Disjoint (a :: Schema) (a :: Schema) :: Bool where Disjoint (Sch GHC.Types.[]) z = True Disjoint (Sch ((GHC.Types.:) h t)) s = (:&&) (AttrNotIn h s) (Disjoint (Sch t) s) type family Occurs (a :: [AChar]) (a :: Schema) :: Bool where Occurs z (Sch GHC.Types.[]) = False Occurs name (Sch ((GHC.Types.:) (Attr name' z) attrs)) = (:||) ((:==) name name') (Occurs name (Sch attrs)) type family Lookup (a :: [AChar]) (a :: Schema) :: U where Lookup z (Sch GHC.Types.[]) = Any Lookup name (Sch ((GHC.Types.:) (Attr name' u) attrs)) = If ((:==) name name') u (Lookup name (Sch attrs)) data instance Sing (z :: U) = z ~ BOOL => SBOOL | z ~ STRING => SSTRING | z ~ NAT => SNAT | forall (n :: U) (n :: Nat). z ~ VEC n n => SVEC (Sing n) (Sing n) type SU (z :: U) = Sing z instance SingKind (KProxy :: KProxy U) where type DemoteRep (KProxy :: KProxy U) = U fromSing SBOOL = BOOL fromSing SSTRING = STRING fromSing SNAT = NAT fromSing (SVEC b b) = VEC (fromSing b) (fromSing b) toSing BOOL = SomeSing SBOOL toSing STRING = SomeSing SSTRING toSing NAT = SomeSing SNAT toSing (VEC b b) = case (toSing b :: SomeSing (KProxy :: KProxy U), toSing b :: SomeSing (KProxy :: KProxy Nat)) of { (SomeSing c, SomeSing c) -> SomeSing (SVEC c c) } instance SEq (KProxy :: KProxy U) where (%:==) SBOOL SBOOL = STrue (%:==) SBOOL SSTRING = SFalse (%:==) SBOOL SNAT = SFalse (%:==) SBOOL (SVEC _ _) = SFalse (%:==) SSTRING SBOOL = SFalse (%:==) SSTRING SSTRING = STrue (%:==) SSTRING SNAT = SFalse (%:==) SSTRING (SVEC _ _) = SFalse (%:==) SNAT SBOOL = SFalse (%:==) SNAT SSTRING = SFalse (%:==) SNAT SNAT = STrue (%:==) SNAT (SVEC _ _) = SFalse (%:==) (SVEC _ _) SBOOL = SFalse (%:==) (SVEC _ _) SSTRING = SFalse (%:==) (SVEC _ _) SNAT = SFalse (%:==) (SVEC a a) (SVEC b b) = (%:&&) ((%:==) a b) ((%:==) a b) instance SDecide (KProxy :: KProxy U) where (%~) SBOOL SBOOL = Proved Refl (%~) SBOOL SSTRING = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SBOOL SNAT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SBOOL (SVEC _ _) = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SSTRING SBOOL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SSTRING SSTRING = Proved Refl (%~) SSTRING SNAT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SSTRING (SVEC _ _) = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SNAT SBOOL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SNAT SSTRING = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SNAT SNAT = Proved Refl (%~) SNAT (SVEC _ _) = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) (SVEC _ _) SBOOL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) (SVEC _ _) SSTRING = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) (SVEC _ _) SNAT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) (SVEC a a) (SVEC b b) = case ((%~) a b, (%~) a b) of { (Proved Refl, Proved Refl) -> Proved Refl (Disproved contra, _) -> Disproved (\ Refl -> contra Refl) (_, Disproved contra) -> Disproved (\ Refl -> contra Refl) } instance SingI BOOL where sing = SBOOL instance SingI STRING where sing = SSTRING instance SingI NAT where sing = SNAT instance (SingI n, SingI n) => SingI (VEC (n :: U) (n :: Nat)) where sing = SVEC sing sing data instance Sing (z :: AChar) = z ~ CA => SCA | z ~ CB => SCB | z ~ CC => SCC | z ~ CD => SCD | z ~ CE => SCE | z ~ CF => SCF | z ~ CG => SCG | z ~ CH => SCH | z ~ CI => SCI | z ~ CJ => SCJ | z ~ CK => SCK | z ~ CL => SCL | z ~ CM => SCM | z ~ CN => SCN | z ~ CO => SCO | z ~ CP => SCP | z ~ CQ => SCQ | z ~ CR => SCR | z ~ CS => SCS | z ~ CT => SCT | z ~ CU => SCU | z ~ CV => SCV | z ~ CW => SCW | z ~ CX => SCX | z ~ CY => SCY | z ~ CZ => SCZ type SAChar (z :: AChar) = Sing z instance SingKind (KProxy :: KProxy AChar) where type DemoteRep (KProxy :: KProxy AChar) = AChar fromSing SCA = CA fromSing SCB = CB fromSing SCC = CC fromSing SCD = CD fromSing SCE = CE fromSing SCF = CF fromSing SCG = CG fromSing SCH = CH fromSing SCI = CI fromSing SCJ = CJ fromSing SCK = CK fromSing SCL = CL fromSing SCM = CM fromSing SCN = CN fromSing SCO = CO fromSing SCP = CP fromSing SCQ = CQ fromSing SCR = CR fromSing SCS = CS fromSing SCT = CT fromSing SCU = CU fromSing SCV = CV fromSing SCW = CW fromSing SCX = CX fromSing SCY = CY fromSing SCZ = CZ toSing CA = SomeSing SCA toSing CB = SomeSing SCB toSing CC = SomeSing SCC toSing CD = SomeSing SCD toSing CE = SomeSing SCE toSing CF = SomeSing SCF toSing CG = SomeSing SCG toSing CH = SomeSing SCH toSing CI = SomeSing SCI toSing CJ = SomeSing SCJ toSing CK = SomeSing SCK toSing CL = SomeSing SCL toSing CM = SomeSing SCM toSing CN = SomeSing SCN toSing CO = SomeSing SCO toSing CP = SomeSing SCP toSing CQ = SomeSing SCQ toSing CR = SomeSing SCR toSing CS = SomeSing SCS toSing CT = SomeSing SCT toSing CU = SomeSing SCU toSing CV = SomeSing SCV toSing CW = SomeSing SCW toSing CX = SomeSing SCX toSing CY = SomeSing SCY toSing CZ = SomeSing SCZ instance SEq (KProxy :: KProxy AChar) where (%:==) SCA SCA = STrue (%:==) SCA SCB = SFalse (%:==) SCA SCC = SFalse (%:==) SCA SCD = SFalse (%:==) SCA SCE = SFalse (%:==) SCA SCF = SFalse (%:==) SCA SCG = SFalse (%:==) SCA SCH = SFalse (%:==) SCA SCI = SFalse (%:==) SCA SCJ = SFalse (%:==) SCA SCK = SFalse (%:==) SCA SCL = SFalse (%:==) SCA SCM = SFalse (%:==) SCA SCN = SFalse (%:==) SCA SCO = SFalse (%:==) SCA SCP = SFalse (%:==) SCA SCQ = SFalse (%:==) SCA SCR = SFalse (%:==) SCA SCS = SFalse (%:==) SCA SCT = SFalse (%:==) SCA SCU = SFalse (%:==) SCA SCV = SFalse (%:==) SCA SCW = SFalse (%:==) SCA SCX = SFalse (%:==) SCA SCY = SFalse (%:==) SCA SCZ = SFalse (%:==) SCB SCA = SFalse (%:==) SCB SCB = STrue (%:==) SCB SCC = SFalse (%:==) SCB SCD = SFalse (%:==) SCB SCE = SFalse (%:==) SCB SCF = SFalse (%:==) SCB SCG = SFalse (%:==) SCB SCH = SFalse (%:==) SCB SCI = SFalse (%:==) SCB SCJ = SFalse (%:==) SCB SCK = SFalse (%:==) SCB SCL = SFalse (%:==) SCB SCM = SFalse (%:==) SCB SCN = SFalse (%:==) SCB SCO = SFalse (%:==) SCB SCP = SFalse (%:==) SCB SCQ = SFalse (%:==) SCB SCR = SFalse (%:==) SCB SCS = SFalse (%:==) SCB SCT = SFalse (%:==) SCB SCU = SFalse (%:==) SCB SCV = SFalse (%:==) SCB SCW = SFalse (%:==) SCB SCX = SFalse (%:==) SCB SCY = SFalse (%:==) SCB SCZ = SFalse (%:==) SCC SCA = SFalse (%:==) SCC SCB = SFalse (%:==) SCC SCC = STrue (%:==) SCC SCD = SFalse (%:==) SCC SCE = SFalse (%:==) SCC SCF = SFalse (%:==) SCC SCG = SFalse (%:==) SCC SCH = SFalse (%:==) SCC SCI = SFalse (%:==) SCC SCJ = SFalse (%:==) SCC SCK = SFalse (%:==) SCC SCL = SFalse (%:==) SCC SCM = SFalse (%:==) SCC SCN = SFalse (%:==) SCC SCO = SFalse (%:==) SCC SCP = SFalse (%:==) SCC SCQ = SFalse (%:==) SCC SCR = SFalse (%:==) SCC SCS = SFalse (%:==) SCC SCT = SFalse (%:==) SCC SCU = SFalse (%:==) SCC SCV = SFalse (%:==) SCC SCW = SFalse (%:==) SCC SCX = SFalse (%:==) SCC SCY = SFalse (%:==) SCC SCZ = SFalse (%:==) SCD SCA = SFalse (%:==) SCD SCB = SFalse (%:==) SCD SCC = SFalse (%:==) SCD SCD = STrue (%:==) SCD SCE = SFalse (%:==) SCD SCF = SFalse (%:==) SCD SCG = SFalse (%:==) SCD SCH = SFalse (%:==) SCD SCI = SFalse (%:==) SCD SCJ = SFalse (%:==) SCD SCK = SFalse (%:==) SCD SCL = SFalse (%:==) SCD SCM = SFalse (%:==) SCD SCN = SFalse (%:==) SCD SCO = SFalse (%:==) SCD SCP = SFalse (%:==) SCD SCQ = SFalse (%:==) SCD SCR = SFalse (%:==) SCD SCS = SFalse (%:==) SCD SCT = SFalse (%:==) SCD SCU = SFalse (%:==) SCD SCV = SFalse (%:==) SCD SCW = SFalse (%:==) SCD SCX = SFalse (%:==) SCD SCY = SFalse (%:==) SCD SCZ = SFalse (%:==) SCE SCA = SFalse (%:==) SCE SCB = SFalse (%:==) SCE SCC = SFalse (%:==) SCE SCD = SFalse (%:==) SCE SCE = STrue (%:==) SCE SCF = SFalse (%:==) SCE SCG = SFalse (%:==) SCE SCH = SFalse (%:==) SCE SCI = SFalse (%:==) SCE SCJ = SFalse (%:==) SCE SCK = SFalse (%:==) SCE SCL = SFalse (%:==) SCE SCM = SFalse (%:==) SCE SCN = SFalse (%:==) SCE SCO = SFalse (%:==) SCE SCP = SFalse (%:==) SCE SCQ = SFalse (%:==) SCE SCR = SFalse (%:==) SCE SCS = SFalse (%:==) SCE SCT = SFalse (%:==) SCE SCU = SFalse (%:==) SCE SCV = SFalse (%:==) SCE SCW = SFalse (%:==) SCE SCX = SFalse (%:==) SCE SCY = SFalse (%:==) SCE SCZ = SFalse (%:==) SCF SCA = SFalse (%:==) SCF SCB = SFalse (%:==) SCF SCC = SFalse (%:==) SCF SCD = SFalse (%:==) SCF SCE = SFalse (%:==) SCF SCF = STrue (%:==) SCF SCG = SFalse (%:==) SCF SCH = SFalse (%:==) SCF SCI = SFalse (%:==) SCF SCJ = SFalse (%:==) SCF SCK = SFalse (%:==) SCF SCL = SFalse (%:==) SCF SCM = SFalse (%:==) SCF SCN = SFalse (%:==) SCF SCO = SFalse (%:==) SCF SCP = SFalse (%:==) SCF SCQ = SFalse (%:==) SCF SCR = SFalse (%:==) SCF SCS = SFalse (%:==) SCF SCT = SFalse (%:==) SCF SCU = SFalse (%:==) SCF SCV = SFalse (%:==) SCF SCW = SFalse (%:==) SCF SCX = SFalse (%:==) SCF SCY = SFalse (%:==) SCF SCZ = SFalse (%:==) SCG SCA = SFalse (%:==) SCG SCB = SFalse (%:==) SCG SCC = SFalse (%:==) SCG SCD = SFalse (%:==) SCG SCE = SFalse (%:==) SCG SCF = SFalse (%:==) SCG SCG = STrue (%:==) SCG SCH = SFalse (%:==) SCG SCI = SFalse (%:==) SCG SCJ = SFalse (%:==) SCG SCK = SFalse (%:==) SCG SCL = SFalse (%:==) SCG SCM = SFalse (%:==) SCG SCN = SFalse (%:==) SCG SCO = SFalse (%:==) SCG SCP = SFalse (%:==) SCG SCQ = SFalse (%:==) SCG SCR = SFalse (%:==) SCG SCS = SFalse (%:==) SCG SCT = SFalse (%:==) SCG SCU = SFalse (%:==) SCG SCV = SFalse (%:==) SCG SCW = SFalse (%:==) SCG SCX = SFalse (%:==) SCG SCY = SFalse (%:==) SCG SCZ = SFalse (%:==) SCH SCA = SFalse (%:==) SCH SCB = SFalse (%:==) SCH SCC = SFalse (%:==) SCH SCD = SFalse (%:==) SCH SCE = SFalse (%:==) SCH SCF = SFalse (%:==) SCH SCG = SFalse (%:==) SCH SCH = STrue (%:==) SCH SCI = SFalse (%:==) SCH SCJ = SFalse (%:==) SCH SCK = SFalse (%:==) SCH SCL = SFalse (%:==) SCH SCM = SFalse (%:==) SCH SCN = SFalse (%:==) SCH SCO = SFalse (%:==) SCH SCP = SFalse (%:==) SCH SCQ = SFalse (%:==) SCH SCR = SFalse (%:==) SCH SCS = SFalse (%:==) SCH SCT = SFalse (%:==) SCH SCU = SFalse (%:==) SCH SCV = SFalse (%:==) SCH SCW = SFalse (%:==) SCH SCX = SFalse (%:==) SCH SCY = SFalse (%:==) SCH SCZ = SFalse (%:==) SCI SCA = SFalse (%:==) SCI SCB = SFalse (%:==) SCI SCC = SFalse (%:==) SCI SCD = SFalse (%:==) SCI SCE = SFalse (%:==) SCI SCF = SFalse (%:==) SCI SCG = SFalse (%:==) SCI SCH = SFalse (%:==) SCI SCI = STrue (%:==) SCI SCJ = SFalse (%:==) SCI SCK = SFalse (%:==) SCI SCL = SFalse (%:==) SCI SCM = SFalse (%:==) SCI SCN = SFalse (%:==) SCI SCO = SFalse (%:==) SCI SCP = SFalse (%:==) SCI SCQ = SFalse (%:==) SCI SCR = SFalse (%:==) SCI SCS = SFalse (%:==) SCI SCT = SFalse (%:==) SCI SCU = SFalse (%:==) SCI SCV = SFalse (%:==) SCI SCW = SFalse (%:==) SCI SCX = SFalse (%:==) SCI SCY = SFalse (%:==) SCI SCZ = SFalse (%:==) SCJ SCA = SFalse (%:==) SCJ SCB = SFalse (%:==) SCJ SCC = SFalse (%:==) SCJ SCD = SFalse (%:==) SCJ SCE = SFalse (%:==) SCJ SCF = SFalse (%:==) SCJ SCG = SFalse (%:==) SCJ SCH = SFalse (%:==) SCJ SCI = SFalse (%:==) SCJ SCJ = STrue (%:==) SCJ SCK = SFalse (%:==) SCJ SCL = SFalse (%:==) SCJ SCM = SFalse (%:==) SCJ SCN = SFalse (%:==) SCJ SCO = SFalse (%:==) SCJ SCP = SFalse (%:==) SCJ SCQ = SFalse (%:==) SCJ SCR = SFalse (%:==) SCJ SCS = SFalse (%:==) SCJ SCT = SFalse (%:==) SCJ SCU = SFalse (%:==) SCJ SCV = SFalse (%:==) SCJ SCW = SFalse (%:==) SCJ SCX = SFalse (%:==) SCJ SCY = SFalse (%:==) SCJ SCZ = SFalse (%:==) SCK SCA = SFalse (%:==) SCK SCB = SFalse (%:==) SCK SCC = SFalse (%:==) SCK SCD = SFalse (%:==) SCK SCE = SFalse (%:==) SCK SCF = SFalse (%:==) SCK SCG = SFalse (%:==) SCK SCH = SFalse (%:==) SCK SCI = SFalse (%:==) SCK SCJ = SFalse (%:==) SCK SCK = STrue (%:==) SCK SCL = SFalse (%:==) SCK SCM = SFalse (%:==) SCK SCN = SFalse (%:==) SCK SCO = SFalse (%:==) SCK SCP = SFalse (%:==) SCK SCQ = SFalse (%:==) SCK SCR = SFalse (%:==) SCK SCS = SFalse (%:==) SCK SCT = SFalse (%:==) SCK SCU = SFalse (%:==) SCK SCV = SFalse (%:==) SCK SCW = SFalse (%:==) SCK SCX = SFalse (%:==) SCK SCY = SFalse (%:==) SCK SCZ = SFalse (%:==) SCL SCA = SFalse (%:==) SCL SCB = SFalse (%:==) SCL SCC = SFalse (%:==) SCL SCD = SFalse (%:==) SCL SCE = SFalse (%:==) SCL SCF = SFalse (%:==) SCL SCG = SFalse (%:==) SCL SCH = SFalse (%:==) SCL SCI = SFalse (%:==) SCL SCJ = SFalse (%:==) SCL SCK = SFalse (%:==) SCL SCL = STrue (%:==) SCL SCM = SFalse (%:==) SCL SCN = SFalse (%:==) SCL SCO = SFalse (%:==) SCL SCP = SFalse (%:==) SCL SCQ = SFalse (%:==) SCL SCR = SFalse (%:==) SCL SCS = SFalse (%:==) SCL SCT = SFalse (%:==) SCL SCU = SFalse (%:==) SCL SCV = SFalse (%:==) SCL SCW = SFalse (%:==) SCL SCX = SFalse (%:==) SCL SCY = SFalse (%:==) SCL SCZ = SFalse (%:==) SCM SCA = SFalse (%:==) SCM SCB = SFalse (%:==) SCM SCC = SFalse (%:==) SCM SCD = SFalse (%:==) SCM SCE = SFalse (%:==) SCM SCF = SFalse (%:==) SCM SCG = SFalse (%:==) SCM SCH = SFalse (%:==) SCM SCI = SFalse (%:==) SCM SCJ = SFalse (%:==) SCM SCK = SFalse (%:==) SCM SCL = SFalse (%:==) SCM SCM = STrue (%:==) SCM SCN = SFalse (%:==) SCM SCO = SFalse (%:==) SCM SCP = SFalse (%:==) SCM SCQ = SFalse (%:==) SCM SCR = SFalse (%:==) SCM SCS = SFalse (%:==) SCM SCT = SFalse (%:==) SCM SCU = SFalse (%:==) SCM SCV = SFalse (%:==) SCM SCW = SFalse (%:==) SCM SCX = SFalse (%:==) SCM SCY = SFalse (%:==) SCM SCZ = SFalse (%:==) SCN SCA = SFalse (%:==) SCN SCB = SFalse (%:==) SCN SCC = SFalse (%:==) SCN SCD = SFalse (%:==) SCN SCE = SFalse (%:==) SCN SCF = SFalse (%:==) SCN SCG = SFalse (%:==) SCN SCH = SFalse (%:==) SCN SCI = SFalse (%:==) SCN SCJ = SFalse (%:==) SCN SCK = SFalse (%:==) SCN SCL = SFalse (%:==) SCN SCM = SFalse (%:==) SCN SCN = STrue (%:==) SCN SCO = SFalse (%:==) SCN SCP = SFalse (%:==) SCN SCQ = SFalse (%:==) SCN SCR = SFalse (%:==) SCN SCS = SFalse (%:==) SCN SCT = SFalse (%:==) SCN SCU = SFalse (%:==) SCN SCV = SFalse (%:==) SCN SCW = SFalse (%:==) SCN SCX = SFalse (%:==) SCN SCY = SFalse (%:==) SCN SCZ = SFalse (%:==) SCO SCA = SFalse (%:==) SCO SCB = SFalse (%:==) SCO SCC = SFalse (%:==) SCO SCD = SFalse (%:==) SCO SCE = SFalse (%:==) SCO SCF = SFalse (%:==) SCO SCG = SFalse (%:==) SCO SCH = SFalse (%:==) SCO SCI = SFalse (%:==) SCO SCJ = SFalse (%:==) SCO SCK = SFalse (%:==) SCO SCL = SFalse (%:==) SCO SCM = SFalse (%:==) SCO SCN = SFalse (%:==) SCO SCO = STrue (%:==) SCO SCP = SFalse (%:==) SCO SCQ = SFalse (%:==) SCO SCR = SFalse (%:==) SCO SCS = SFalse (%:==) SCO SCT = SFalse (%:==) SCO SCU = SFalse (%:==) SCO SCV = SFalse (%:==) SCO SCW = SFalse (%:==) SCO SCX = SFalse (%:==) SCO SCY = SFalse (%:==) SCO SCZ = SFalse (%:==) SCP SCA = SFalse (%:==) SCP SCB = SFalse (%:==) SCP SCC = SFalse (%:==) SCP SCD = SFalse (%:==) SCP SCE = SFalse (%:==) SCP SCF = SFalse (%:==) SCP SCG = SFalse (%:==) SCP SCH = SFalse (%:==) SCP SCI = SFalse (%:==) SCP SCJ = SFalse (%:==) SCP SCK = SFalse (%:==) SCP SCL = SFalse (%:==) SCP SCM = SFalse (%:==) SCP SCN = SFalse (%:==) SCP SCO = SFalse (%:==) SCP SCP = STrue (%:==) SCP SCQ = SFalse (%:==) SCP SCR = SFalse (%:==) SCP SCS = SFalse (%:==) SCP SCT = SFalse (%:==) SCP SCU = SFalse (%:==) SCP SCV = SFalse (%:==) SCP SCW = SFalse (%:==) SCP SCX = SFalse (%:==) SCP SCY = SFalse (%:==) SCP SCZ = SFalse (%:==) SCQ SCA = SFalse (%:==) SCQ SCB = SFalse (%:==) SCQ SCC = SFalse (%:==) SCQ SCD = SFalse (%:==) SCQ SCE = SFalse (%:==) SCQ SCF = SFalse (%:==) SCQ SCG = SFalse (%:==) SCQ SCH = SFalse (%:==) SCQ SCI = SFalse (%:==) SCQ SCJ = SFalse (%:==) SCQ SCK = SFalse (%:==) SCQ SCL = SFalse (%:==) SCQ SCM = SFalse (%:==) SCQ SCN = SFalse (%:==) SCQ SCO = SFalse (%:==) SCQ SCP = SFalse (%:==) SCQ SCQ = STrue (%:==) SCQ SCR = SFalse (%:==) SCQ SCS = SFalse (%:==) SCQ SCT = SFalse (%:==) SCQ SCU = SFalse (%:==) SCQ SCV = SFalse (%:==) SCQ SCW = SFalse (%:==) SCQ SCX = SFalse (%:==) SCQ SCY = SFalse (%:==) SCQ SCZ = SFalse (%:==) SCR SCA = SFalse (%:==) SCR SCB = SFalse (%:==) SCR SCC = SFalse (%:==) SCR SCD = SFalse (%:==) SCR SCE = SFalse (%:==) SCR SCF = SFalse (%:==) SCR SCG = SFalse (%:==) SCR SCH = SFalse (%:==) SCR SCI = SFalse (%:==) SCR SCJ = SFalse (%:==) SCR SCK = SFalse (%:==) SCR SCL = SFalse (%:==) SCR SCM = SFalse (%:==) SCR SCN = SFalse (%:==) SCR SCO = SFalse (%:==) SCR SCP = SFalse (%:==) SCR SCQ = SFalse (%:==) SCR SCR = STrue (%:==) SCR SCS = SFalse (%:==) SCR SCT = SFalse (%:==) SCR SCU = SFalse (%:==) SCR SCV = SFalse (%:==) SCR SCW = SFalse (%:==) SCR SCX = SFalse (%:==) SCR SCY = SFalse (%:==) SCR SCZ = SFalse (%:==) SCS SCA = SFalse (%:==) SCS SCB = SFalse (%:==) SCS SCC = SFalse (%:==) SCS SCD = SFalse (%:==) SCS SCE = SFalse (%:==) SCS SCF = SFalse (%:==) SCS SCG = SFalse (%:==) SCS SCH = SFalse (%:==) SCS SCI = SFalse (%:==) SCS SCJ = SFalse (%:==) SCS SCK = SFalse (%:==) SCS SCL = SFalse (%:==) SCS SCM = SFalse (%:==) SCS SCN = SFalse (%:==) SCS SCO = SFalse (%:==) SCS SCP = SFalse (%:==) SCS SCQ = SFalse (%:==) SCS SCR = SFalse (%:==) SCS SCS = STrue (%:==) SCS SCT = SFalse (%:==) SCS SCU = SFalse (%:==) SCS SCV = SFalse (%:==) SCS SCW = SFalse (%:==) SCS SCX = SFalse (%:==) SCS SCY = SFalse (%:==) SCS SCZ = SFalse (%:==) SCT SCA = SFalse (%:==) SCT SCB = SFalse (%:==) SCT SCC = SFalse (%:==) SCT SCD = SFalse (%:==) SCT SCE = SFalse (%:==) SCT SCF = SFalse (%:==) SCT SCG = SFalse (%:==) SCT SCH = SFalse (%:==) SCT SCI = SFalse (%:==) SCT SCJ = SFalse (%:==) SCT SCK = SFalse (%:==) SCT SCL = SFalse (%:==) SCT SCM = SFalse (%:==) SCT SCN = SFalse (%:==) SCT SCO = SFalse (%:==) SCT SCP = SFalse (%:==) SCT SCQ = SFalse (%:==) SCT SCR = SFalse (%:==) SCT SCS = SFalse (%:==) SCT SCT = STrue (%:==) SCT SCU = SFalse (%:==) SCT SCV = SFalse (%:==) SCT SCW = SFalse (%:==) SCT SCX = SFalse (%:==) SCT SCY = SFalse (%:==) SCT SCZ = SFalse (%:==) SCU SCA = SFalse (%:==) SCU SCB = SFalse (%:==) SCU SCC = SFalse (%:==) SCU SCD = SFalse (%:==) SCU SCE = SFalse (%:==) SCU SCF = SFalse (%:==) SCU SCG = SFalse (%:==) SCU SCH = SFalse (%:==) SCU SCI = SFalse (%:==) SCU SCJ = SFalse (%:==) SCU SCK = SFalse (%:==) SCU SCL = SFalse (%:==) SCU SCM = SFalse (%:==) SCU SCN = SFalse (%:==) SCU SCO = SFalse (%:==) SCU SCP = SFalse (%:==) SCU SCQ = SFalse (%:==) SCU SCR = SFalse (%:==) SCU SCS = SFalse (%:==) SCU SCT = SFalse (%:==) SCU SCU = STrue (%:==) SCU SCV = SFalse (%:==) SCU SCW = SFalse (%:==) SCU SCX = SFalse (%:==) SCU SCY = SFalse (%:==) SCU SCZ = SFalse (%:==) SCV SCA = SFalse (%:==) SCV SCB = SFalse (%:==) SCV SCC = SFalse (%:==) SCV SCD = SFalse (%:==) SCV SCE = SFalse (%:==) SCV SCF = SFalse (%:==) SCV SCG = SFalse (%:==) SCV SCH = SFalse (%:==) SCV SCI = SFalse (%:==) SCV SCJ = SFalse (%:==) SCV SCK = SFalse (%:==) SCV SCL = SFalse (%:==) SCV SCM = SFalse (%:==) SCV SCN = SFalse (%:==) SCV SCO = SFalse (%:==) SCV SCP = SFalse (%:==) SCV SCQ = SFalse (%:==) SCV SCR = SFalse (%:==) SCV SCS = SFalse (%:==) SCV SCT = SFalse (%:==) SCV SCU = SFalse (%:==) SCV SCV = STrue (%:==) SCV SCW = SFalse (%:==) SCV SCX = SFalse (%:==) SCV SCY = SFalse (%:==) SCV SCZ = SFalse (%:==) SCW SCA = SFalse (%:==) SCW SCB = SFalse (%:==) SCW SCC = SFalse (%:==) SCW SCD = SFalse (%:==) SCW SCE = SFalse (%:==) SCW SCF = SFalse (%:==) SCW SCG = SFalse (%:==) SCW SCH = SFalse (%:==) SCW SCI = SFalse (%:==) SCW SCJ = SFalse (%:==) SCW SCK = SFalse (%:==) SCW SCL = SFalse (%:==) SCW SCM = SFalse (%:==) SCW SCN = SFalse (%:==) SCW SCO = SFalse (%:==) SCW SCP = SFalse (%:==) SCW SCQ = SFalse (%:==) SCW SCR = SFalse (%:==) SCW SCS = SFalse (%:==) SCW SCT = SFalse (%:==) SCW SCU = SFalse (%:==) SCW SCV = SFalse (%:==) SCW SCW = STrue (%:==) SCW SCX = SFalse (%:==) SCW SCY = SFalse (%:==) SCW SCZ = SFalse (%:==) SCX SCA = SFalse (%:==) SCX SCB = SFalse (%:==) SCX SCC = SFalse (%:==) SCX SCD = SFalse (%:==) SCX SCE = SFalse (%:==) SCX SCF = SFalse (%:==) SCX SCG = SFalse (%:==) SCX SCH = SFalse (%:==) SCX SCI = SFalse (%:==) SCX SCJ = SFalse (%:==) SCX SCK = SFalse (%:==) SCX SCL = SFalse (%:==) SCX SCM = SFalse (%:==) SCX SCN = SFalse (%:==) SCX SCO = SFalse (%:==) SCX SCP = SFalse (%:==) SCX SCQ = SFalse (%:==) SCX SCR = SFalse (%:==) SCX SCS = SFalse (%:==) SCX SCT = SFalse (%:==) SCX SCU = SFalse (%:==) SCX SCV = SFalse (%:==) SCX SCW = SFalse (%:==) SCX SCX = STrue (%:==) SCX SCY = SFalse (%:==) SCX SCZ = SFalse (%:==) SCY SCA = SFalse (%:==) SCY SCB = SFalse (%:==) SCY SCC = SFalse (%:==) SCY SCD = SFalse (%:==) SCY SCE = SFalse (%:==) SCY SCF = SFalse (%:==) SCY SCG = SFalse (%:==) SCY SCH = SFalse (%:==) SCY SCI = SFalse (%:==) SCY SCJ = SFalse (%:==) SCY SCK = SFalse (%:==) SCY SCL = SFalse (%:==) SCY SCM = SFalse (%:==) SCY SCN = SFalse (%:==) SCY SCO = SFalse (%:==) SCY SCP = SFalse (%:==) SCY SCQ = SFalse (%:==) SCY SCR = SFalse (%:==) SCY SCS = SFalse (%:==) SCY SCT = SFalse (%:==) SCY SCU = SFalse (%:==) SCY SCV = SFalse (%:==) SCY SCW = SFalse (%:==) SCY SCX = SFalse (%:==) SCY SCY = STrue (%:==) SCY SCZ = SFalse (%:==) SCZ SCA = SFalse (%:==) SCZ SCB = SFalse (%:==) SCZ SCC = SFalse (%:==) SCZ SCD = SFalse (%:==) SCZ SCE = SFalse (%:==) SCZ SCF = SFalse (%:==) SCZ SCG = SFalse (%:==) SCZ SCH = SFalse (%:==) SCZ SCI = SFalse (%:==) SCZ SCJ = SFalse (%:==) SCZ SCK = SFalse (%:==) SCZ SCL = SFalse (%:==) SCZ SCM = SFalse (%:==) SCZ SCN = SFalse (%:==) SCZ SCO = SFalse (%:==) SCZ SCP = SFalse (%:==) SCZ SCQ = SFalse (%:==) SCZ SCR = SFalse (%:==) SCZ SCS = SFalse (%:==) SCZ SCT = SFalse (%:==) SCZ SCU = SFalse (%:==) SCZ SCV = SFalse (%:==) SCZ SCW = SFalse (%:==) SCZ SCX = SFalse (%:==) SCZ SCY = SFalse (%:==) SCZ SCZ = STrue instance SDecide (KProxy :: KProxy AChar) where (%~) SCA SCA = Proved Refl (%~) SCA SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCA SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCB = Proved Refl (%~) SCB SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCB SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCC = Proved Refl (%~) SCC SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCC SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCD = Proved Refl (%~) SCD SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCD SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCE = Proved Refl (%~) SCE SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCE SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCF = Proved Refl (%~) SCF SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCF SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCG = Proved Refl (%~) SCG SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCG SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCH = Proved Refl (%~) SCH SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCH SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCI = Proved Refl (%~) SCI SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCI SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCJ = Proved Refl (%~) SCJ SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCJ SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCK = Proved Refl (%~) SCK SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCK SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCL = Proved Refl (%~) SCL SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCL SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCM = Proved Refl (%~) SCM SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCM SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCN = Proved Refl (%~) SCN SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCN SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCO = Proved Refl (%~) SCO SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCO SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCP = Proved Refl (%~) SCP SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCP SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCQ = Proved Refl (%~) SCQ SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCQ SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCR = Proved Refl (%~) SCR SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCR SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCS = Proved Refl (%~) SCS SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCS SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCT = Proved Refl (%~) SCT SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCT SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCU = Proved Refl (%~) SCU SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCU SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCV = Proved Refl (%~) SCV SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCV SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCW = Proved Refl (%~) SCW SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCW SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCX = Proved Refl (%~) SCX SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCX SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCY SCY = Proved Refl (%~) SCY SCZ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCA = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCB = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCC = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCD = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCE = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCF = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCG = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCH = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCI = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCJ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCK = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCL = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCM = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCN = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCO = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCP = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCQ = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCR = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCS = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCT = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCU = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCV = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCW = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCX = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCY = Disproved (\case { _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCZ = Proved Refl instance SingI CA where sing = SCA instance SingI CB where sing = SCB instance SingI CC where sing = SCC instance SingI CD where sing = SCD instance SingI CE where sing = SCE instance SingI CF where sing = SCF instance SingI CG where sing = SCG instance SingI CH where sing = SCH instance SingI CI where sing = SCI instance SingI CJ where sing = SCJ instance SingI CK where sing = SCK instance SingI CL where sing = SCL instance SingI CM where sing = SCM instance SingI CN where sing = SCN instance SingI CO where sing = SCO instance SingI CP where sing = SCP instance SingI CQ where sing = SCQ instance SingI CR where sing = SCR instance SingI CS where sing = SCS instance SingI CT where sing = SCT instance SingI CU where sing = SCU instance SingI CV where sing = SCV instance SingI CW where sing = SCW instance SingI CX where sing = SCX instance SingI CY where sing = SCY instance SingI CZ where sing = SCZ data instance Sing (z :: Attribute) = forall (n :: [AChar]) (n :: U). z ~ Attr n n => SAttr (Sing n) (Sing n) type SAttribute (z :: Attribute) = Sing z instance SingKind (KProxy :: KProxy Attribute) where type DemoteRep (KProxy :: KProxy Attribute) = Attribute fromSing (SAttr b b) = Attr (fromSing b) (fromSing b) toSing (Attr b b) = case (toSing b :: SomeSing (KProxy :: KProxy [AChar]), toSing b :: SomeSing (KProxy :: KProxy U)) of { (SomeSing c, SomeSing c) -> SomeSing (SAttr c c) } instance (SingI n, SingI n) => SingI (Attr (n :: [AChar]) (n :: U)) where sing = SAttr sing sing data instance Sing (z :: Schema) = forall (n :: [Attribute]). z ~ Sch n => SSch (Sing n) type SSchema (z :: Schema) = Sing z instance SingKind (KProxy :: KProxy Schema) where type DemoteRep (KProxy :: KProxy Schema) = Schema fromSing (SSch b) = Sch (fromSing b) toSing (Sch b) = case toSing b :: SomeSing (KProxy :: KProxy [Attribute]) of { SomeSing c -> SomeSing (SSch c) } instance SingI n => SingI (Sch (n :: [Attribute])) where sing = SSch sing sAppend :: forall (t :: Schema) (t :: Schema). Sing t -> Sing t -> Sing (Append t t) sAppend (SSch s1) (SSch s2) = SSch ((%:++) s1 s2) sAttrNotIn :: forall (t :: Attribute) (t :: Schema). Sing t -> Sing t -> Sing (AttrNotIn t t) sAttrNotIn _ (SSch SNil) = STrue sAttrNotIn (SAttr name u) (SSch (SCons (SAttr name' _) t)) = (%:&&) ((%:/=) name name') (sAttrNotIn (SAttr name u) (SSch t)) sDisjoint :: forall (t :: Schema) (t :: Schema). Sing t -> Sing t -> Sing (Disjoint t t) sDisjoint (SSch SNil) _ = STrue sDisjoint (SSch (SCons h t)) s = (%:&&) (sAttrNotIn h s) (sDisjoint (SSch t) s) sOccurs :: forall (t :: [AChar]) (t :: Schema). Sing t -> Sing t -> Sing (Occurs t t) sOccurs _ (SSch SNil) = SFalse sOccurs name (SSch (SCons (SAttr name' _) attrs)) = (%:||) ((%:==) name name') (sOccurs name (SSch attrs)) sLookup :: forall (t :: [AChar]) (t :: Schema). Sing t -> Sing t -> Sing (Lookup t t) sLookup _ (SSch SNil) = undefined sLookup name (SSch (SCons (SAttr name' u) attrs)) = sIf ((%:==) name name') u (sLookup name (SSch attrs)) GradingClient/Database.hs:0:0: Splicing declarations return [] ======> GradingClient/Database.hs:0:0: GradingClient/Database.hs:(0,0)-(0,0): Splicing expression cases ''Row [| r |] [| changeId (n ++ (getId r)) r |] ======> case r of { EmptyRow _ -> changeId (n ++ (getId r)) r ConsRow _ _ -> changeId (n ++ (getId r)) r }