Open goldfirere opened 8 years ago
{-# LANGUAGE DeriveDataTypeable, TypeFamilies, TemplateHaskell, DataKinds, PolyKinds, GADTs, RankNTypes, MultiParamTypeClasses, FlexibleInstances, UndecidableInstances, UnicodeSyntax, FunctionalDependencies, StandaloneDeriving, TypeOperators, ScopedTypeVariables, NoMonomorphismRestriction, MonadComprehensions, DeriveGeneric, FlexibleContexts, GeneralizedNewtypeDeriving, ConstraintKinds, LambdaCase, ViewPatterns, -- AllowAmbiguousTypes, DefaultSignatures, RecursiveDo, -- ImpredicativeTypes, ImplicitParams, MagicHash, UnboxedTuples, RoleAnnotations, ExtendedDefaultRules, PatternSynonyms, EmptyCase, BangPatterns, InstanceSigs, DeriveFunctor, Arrows , NamedWildCards, PartialTypeSignatures , TypeInType, TypeApplications, TypeFamilyDependencies -- , OverloadedLists #-} module Scratch where import Data.Singletons import Data.Singletons.Prelude.Base import Data.Singletons.Prelude.Instances import Data.Singletons.Prelude.Eq import Data.Proxy import GHC.Types type CompareSym2 t_aRSH t_aRSI = Compare t_aRSH t_aRSI data CompareSym1 (l_aRSM :: a1627597068) (l_aRSL :: Data.Singletons.TyFun a1627597068 Ordering) type instance Data.Singletons.Apply (CompareSym1 l_aRSM) l_aRSL = CompareSym2 l_aRSM l_aRSL data CompareSym0 (l_aRSJ :: Data.Singletons.TyFun a1627597068 (Data.Singletons.TyFun a1627597068 Ordering -> GHC.Types.Type)) = forall arg_aRSK. Data.Singletons.KindOf (Data.Singletons.Apply CompareSym0 arg_aRSK) ~ Data.Singletons.KindOf (CompareSym1 arg_aRSK) => CompareSym0KindInference type instance Data.Singletons.Apply CompareSym0 l_aRSJ = CompareSym1 l_aRSJ type (:<$$$) (t_aRSQ :: a1627597068) (t_aRSR :: a1627597068) = (:<) t_aRSQ t_aRSR data (:<$$) (l_aRSV :: a1627597068) (l_aRSU :: Data.Singletons.TyFun a1627597068 Bool) = forall arg_aRSW. Data.Singletons.KindOf (Data.Singletons.Apply ((:<$$) l_aRSV) arg_aRSW) ~ Data.Singletons.KindOf ((:<$$$) l_aRSV arg_aRSW) => (:<$$###) type instance Data.Singletons.Apply ((:<$$) l_aRSV) l_aRSU = (:<$$$) l_aRSV l_aRSU data (:<$) (l_aRSS :: Data.Singletons.TyFun a1627597068 (Data.Singletons.TyFun a1627597068 Bool -> GHC.Types.Type)) = forall arg_aRST. Data.Singletons.KindOf (Data.Singletons.Apply (:<$) arg_aRST) ~ Data.Singletons.KindOf ((:<$$) arg_aRST) => (:<$###) type instance Data.Singletons.Apply (:<$) l_aRSS = (:<$$) l_aRSS type (:<=$$$) (t_aRSZ :: a1627597068) (t_aRT0 :: a1627597068) = (:<=) t_aRSZ t_aRT0 data (:<=$$) (l_aRT4 :: a1627597068) (l_aRT3 :: Data.Singletons.TyFun a1627597068 Bool) = forall arg_aRT5. Data.Singletons.KindOf (Data.Singletons.Apply ((:<=$$) l_aRT4) arg_aRT5) ~ Data.Singletons.KindOf ((:<=$$$) l_aRT4 arg_aRT5) => (:<=$$###) type instance Data.Singletons.Apply ((:<=$$) l_aRT4) l_aRT3 = (:<=$$$) l_aRT4 l_aRT3 data (:<=$) (l_aRT1 :: Data.Singletons.TyFun a1627597068 (Data.Singletons.TyFun a1627597068 Bool -> GHC.Types.Type)) = forall arg_aRT2. Data.Singletons.KindOf (Data.Singletons.Apply (:<=$) arg_aRT2) ~ Data.Singletons.KindOf ((:<=$$) arg_aRT2) => (:<=$###) type instance Data.Singletons.Apply (:<=$) l_aRT1 = (:<=$$) l_aRT1 type (:>$$$) (t_aRT8 :: a1627597068) (t_aRT9 :: a1627597068) = (:>) t_aRT8 t_aRT9 data (:>$$) (l_aRTd :: a1627597068) (l_aRTc :: Data.Singletons.TyFun a1627597068 Bool) = forall arg_aRTe. Data.Singletons.KindOf (Data.Singletons.Apply ((:>$$) l_aRTd) arg_aRTe) ~ Data.Singletons.KindOf ((:>$$$) l_aRTd arg_aRTe) => (:>$$###) type instance Data.Singletons.Apply ((:>$$) l_aRTd) l_aRTc = (:>$$$) l_aRTd l_aRTc data (:>$) (l_aRTa :: Data.Singletons.TyFun a1627597068 (Data.Singletons.TyFun a1627597068 Bool -> GHC.Types.Type)) = forall arg_aRTb. Data.Singletons.KindOf (Data.Singletons.Apply (:>$) arg_aRTb) ~ Data.Singletons.KindOf ((:>$$) arg_aRTb) => (:>$###) type instance Data.Singletons.Apply (:>$) l_aRTa = (:>$$) l_aRTa type (:>=$$$) (t_aRTh :: a1627597068) (t_aRTi :: a1627597068) = (:>=) t_aRTh t_aRTi data (:>=$$) (l_aRTm :: a1627597068) (l_aRTl :: Data.Singletons.TyFun a1627597068 Bool) = forall arg_aRTn. Data.Singletons.KindOf (Data.Singletons.Apply ((:>=$$) l_aRTm) arg_aRTn) ~ Data.Singletons.KindOf ((:>=$$$) l_aRTm arg_aRTn) => (:>=$$###) type instance Data.Singletons.Apply ((:>=$$) l_aRTm) l_aRTl = (:>=$$$) l_aRTm l_aRTl data (:>=$) (l_aRTj :: Data.Singletons.TyFun a1627597068 (Data.Singletons.TyFun a1627597068 Bool -> GHC.Types.Type)) = forall arg_aRTk. Data.Singletons.KindOf (Data.Singletons.Apply (:>=$) arg_aRTk) ~ Data.Singletons.KindOf ((:>=$$) arg_aRTk) => (:>=$###) type instance Data.Singletons.Apply (:>=$) l_aRTj = (:>=$$) l_aRTj type Let1627597129Scrutinee_1627597071Sym2 t_aRTA t_aRTB = Let1627597129Scrutinee_1627597071 t_aRTA t_aRTB data Let1627597129Scrutinee_1627597071Sym1 l_aRTF l_aRTE = forall arg_aRTG. Data.Singletons.KindOf (Data.Singletons.Apply (Let1627597129Scrutinee_1627597071Sym1 l_aRTF) arg_aRTG) ~ Data.Singletons.KindOf (Let1627597129Scrutinee_1627597071Sym2 l_aRTF arg_aRTG) => Let1627597129Scrutinee_1627597071Sym1KindInference type instance Data.Singletons.Apply (Let1627597129Scrutinee_1627597071Sym1 l_aRTF) l_aRTE = Let1627597129Scrutinee_1627597071Sym2 l_aRTF l_aRTE data Let1627597129Scrutinee_1627597071Sym0 l_aRTC = forall arg_aRTD. Data.Singletons.KindOf (Data.Singletons.Apply Let1627597129Scrutinee_1627597071Sym0 arg_aRTD) ~ Data.Singletons.KindOf (Let1627597129Scrutinee_1627597071Sym1 arg_aRTD) => Let1627597129Scrutinee_1627597071Sym0KindInference type instance Data.Singletons.Apply Let1627597129Scrutinee_1627597071Sym0 l_aRTC = Let1627597129Scrutinee_1627597071Sym1 l_aRTC type family Let1627597129Scrutinee_1627597071 x_aRTx y_aRTy where Let1627597129Scrutinee_1627597071 x_aRTx y_aRTy = Data.Singletons.Apply (Data.Singletons.Apply CompareSym0 x_aRTx) y_aRTy type family Case_1627597137_aRTI x_aRTx y_aRTy t_aRTJ where Case_1627597137_aRTI x_aRTx y_aRTy LT = TrueSym0 Case_1627597137_aRTI x_aRTx y_aRTy EQ = TrueSym0 Case_1627597137_aRTI x_aRTx y_aRTy GT = FalseSym0 type family TFHelper_1627597142_aRTN (a_aRTK :: a_aRSA) (a_aRTL :: a_aRSA) :: Bool where TFHelper_1627597142_aRTN x_aRTx y_aRTy = Case_1627597137_aRTI x_aRTx y_aRTy (Let1627597129Scrutinee_1627597071Sym2 x_aRTx y_aRTy) type TFHelper_1627597142Sym2 (t_aRTO :: a1627597068) (t_aRTP :: a1627597068) = TFHelper_1627597142_aRTN t_aRTO t_aRTP data TFHelper_1627597142Sym1 (l_aRTT :: a1627597068) (l_aRTS :: Data.Singletons.TyFun a1627597068 Bool) = forall arg_aRTU. Data.Singletons.KindOf (Data.Singletons.Apply (TFHelper_1627597142Sym1 l_aRTT) arg_aRTU) ~ Data.Singletons.KindOf (TFHelper_1627597142Sym2 l_aRTT arg_aRTU) => TFHelper_1627597142Sym1KindInference type instance Data.Singletons.Apply (TFHelper_1627597142Sym1 l_aRTT) l_aRTS = TFHelper_1627597142Sym2 l_aRTT l_aRTS data TFHelper_1627597142Sym0 (l_aRTQ :: Data.Singletons.TyFun a1627597068 (Data.Singletons.TyFun a1627597068 Bool -> GHC.Types.Type)) = forall arg_aRTR. Data.Singletons.KindOf (Data.Singletons.Apply TFHelper_1627597142Sym0 arg_aRTR) ~ Data.Singletons.KindOf (TFHelper_1627597142Sym1 arg_aRTR) => TFHelper_1627597142Sym0KindInference type instance Data.Singletons.Apply TFHelper_1627597142Sym0 l_aRTQ = TFHelper_1627597142Sym1 l_aRTQ class PEq a_aRSA => POrd a_aRSA where type Compare (arg_aRSF :: a_aRSA) (arg_aRSG :: a_aRSA) :: Ordering type (:<) (arg_aRSO :: a_aRSA) (arg_aRSP :: a_aRSA) :: Bool type (:<=) (arg_aRSX :: a_aRSA) (arg_aRSY :: a_aRSA) :: Bool type (:>) (arg_aRT6 :: a_aRSA) (arg_aRT7 :: a_aRSA) :: Bool type (:>=) (arg_aRTf :: a_aRSA) (arg_aRTg :: a_aRSA) :: Bool type (:<=) a_aRTK a_aRTL = Data.Singletons.Apply (Data.Singletons.Apply TFHelper_1627597142Sym0 a_aRTK) a_aRTL class SEq a_aRSA => SOrd a_aRSA where sCompare :: forall (t_aRTV :: a_aRSA) (t_aRTW :: a_aRSA). Sing t_aRTV -> Sing t_aRTW -> Sing (Data.Singletons.Apply (Data.Singletons.Apply CompareSym0 t_aRTV) t_aRTW :: Ordering) (%:<) :: forall (t_aRTX :: a_aRSA) (t_aRTY :: a_aRSA). Sing t_aRTX -> Sing t_aRTY -> Sing (Data.Singletons.Apply (Data.Singletons.Apply (:<$) t_aRTX) t_aRTY :: Bool) (%:<=) :: forall (t_aRTZ :: a_aRSA) (t_aRU0 :: a_aRSA). Sing t_aRTZ -> Sing t_aRU0 -> Sing (Data.Singletons.Apply (Data.Singletons.Apply (:<=$) t_aRTZ) t_aRU0 :: Bool) (%:>) :: forall (t_aRU1 :: a_aRSA) (t_aRU2 :: a_aRSA). Sing t_aRU1 -> Sing t_aRU2 -> Sing (Data.Singletons.Apply (Data.Singletons.Apply (:>$) t_aRU1) t_aRU2 :: Bool) (%:>=) :: forall (t_aRU3 :: a_aRSA) (t_aRU4 :: a_aRSA). Sing t_aRU3 -> Sing t_aRU4 -> Sing (Data.Singletons.Apply (Data.Singletons.Apply (:>=$) t_aRU3) t_aRU4 :: Bool) default (%:<=) :: forall (t_aRTZ :: a_aRSA) (t_aRU0 :: a_aRSA). Data.Singletons.Apply (Data.Singletons.Apply (:<=$) t_aRTZ) t_aRU0 ~ Data.Singletons.Apply (Data.Singletons.Apply TFHelper_1627597142Sym0 t_aRTZ) t_aRU0 => Sing t_aRTZ -> Sing t_aRU0 -> Sing (Data.Singletons.Apply (Data.Singletons.Apply (:<=$) t_aRTZ) t_aRU0 :: Bool) (%:<=) sX sY = let lambda_aRU5 :: forall x_aRTx y_aRTy. (t_aRTZ ~ x_aRTx, t_aRU0 ~ y_aRTy) => Sing x_aRTx -> Sing y_aRTy -> Sing (Data.Singletons.Apply (Data.Singletons.Apply (:<=$) t_aRTZ) t_aRU0 :: Bool) lambda_aRU5 x_aRU6 y_aRU7 = let sScrutinee_1627597071 :: Sing (Let1627597129Scrutinee_1627597071Sym2 x_aRTx y_aRTy) sScrutinee_1627597071 = Data.Singletons.applySing (Data.Singletons.applySing (Data.Singletons.singFun2 (Data.Proxy.Proxy :: Data.Proxy.Proxy CompareSym0) sCompare) x_aRU6) y_aRU7 in case sScrutinee_1627597071 of { SLT -> let lambda_aRU8 :: LTSym0 ~ Let1627597129Scrutinee_1627597071Sym2 x_aRTx y_aRTy => Sing (Case_1627597137_aRTI x_aRTx y_aRTy LTSym0 :: Bool) lambda_aRU8 = STrue in lambda_aRU8; SEQ -> let lambda_aRU9 :: EQSym0 ~ Let1627597129Scrutinee_1627597071Sym2 x_aRTx y_aRTy => Sing (Case_1627597137_aRTI x_aRTx y_aRTy EQSym0 :: Bool) lambda_aRU9 = STrue in lambda_aRU9; SGT -> let lambda_aRUa :: GTSym0 ~ Let1627597129Scrutinee_1627597071Sym2 x_aRTx y_aRTy => Sing (Case_1627597137_aRTI x_aRTx y_aRTy GTSym0 :: Bool) lambda_aRUa = SFalse in lambda_aRUa } :: Sing (Case_1627597137_aRTI x_aRTx y_aRTy (Let1627597129Scrutinee_1627597071Sym2 x_aRTx y_aRTy) :: Bool) in lambda_aRU5 sX sY