singletons 1.0 → 1.1
raw patch · 56 files changed
+777/−839 lines, 56 filesdep ~basedep ~th-desugar
Dependency ranges changed: base, th-desugar
Files
- CHANGES.md +27/−0
- singletons.cabal +4/−4
- src/Data/Promotion/Prelude.hs +1/−1
- src/Data/Promotion/Prelude/List.hs +1/−1
- src/Data/Singletons/CustomStar.hs +6/−8
- src/Data/Singletons/Names.hs +6/−3
- src/Data/Singletons/Prelude.hs +1/−1
- src/Data/Singletons/Prelude/List.hs +1/−9
- src/Data/Singletons/Prelude/Ord.hs +9/−9
- src/Data/Singletons/Promote.hs +20/−19
- src/Data/Singletons/Promote/Bounded.hs +1/−2
- src/Data/Singletons/Promote/Eq.hs +4/−4
- src/Data/Singletons/Promote/Monad.hs +43/−55
- src/Data/Singletons/Promote/Ord.hs +8/−8
- src/Data/Singletons/Single.hs +20/−20
- src/Data/Singletons/Single/Eq.hs +5/−5
- src/Data/Singletons/Single/Monad.hs +49/−13
- src/Data/Singletons/Syntax.hs +5/−2
- src/Data/Singletons/TH.hs +2/−4
- src/Data/Singletons/TypeRepStar.hs +1/−1
- src/Data/Singletons/Util.hs +15/−46
- tests/SingletonsTestSuiteUtils.hs +6/−0
- tests/compile-and-dump/GradingClient/Database.ghc78.template +67/−81
- tests/compile-and-dump/GradingClient/Database.hs +1/−0
- tests/compile-and-dump/InsertionSort/InsertionSortImp.ghc78.template +18/−22
- tests/compile-and-dump/Promote/BoundedDeriving.ghc78.template +3/−3
- tests/compile-and-dump/Promote/Classes.ghc78.template +10/−10
- tests/compile-and-dump/Promote/Constructors.ghc78.template +7/−7
- tests/compile-and-dump/Promote/GenDefunSymbols.ghc78.template +5/−5
- tests/compile-and-dump/Promote/Newtypes.ghc78.template +3/−3
- tests/compile-and-dump/Promote/OrdDeriving.ghc78.template +25/−25
- tests/compile-and-dump/Promote/Prelude.ghc78.template +1/−1
- tests/compile-and-dump/Promote/TopLevelPatterns.ghc78.template +8/−8
- tests/compile-and-dump/Singletons/AsPattern.ghc78.template +29/−36
- tests/compile-and-dump/Singletons/BoxUnBox.ghc78.template +4/−4
- tests/compile-and-dump/Singletons/CaseExpressions.ghc78.template +25/−27
- tests/compile-and-dump/Singletons/Contains.ghc78.template +4/−6
- tests/compile-and-dump/Singletons/DataValues.ghc78.template +3/−4
- tests/compile-and-dump/Singletons/Error.ghc78.template +3/−4
- tests/compile-and-dump/Singletons/HigherOrder.ghc78.template +52/−59
- tests/compile-and-dump/Singletons/LambdaCase.ghc78.template +17/−17
- tests/compile-and-dump/Singletons/Lambdas.ghc78.template +62/−68
- tests/compile-and-dump/Singletons/LambdasComprehensive.ghc78.template +1/−1
- tests/compile-and-dump/Singletons/LetStatements.ghc78.template +72/−92
- tests/compile-and-dump/Singletons/Maybe.ghc78.template +3/−3
- tests/compile-and-dump/Singletons/Nat.ghc78.template +10/−12
- tests/compile-and-dump/Singletons/Operators.ghc78.template +11/−13
- tests/compile-and-dump/Singletons/PatternMatching.ghc78.template +19/−20
- tests/compile-and-dump/Singletons/Records.ghc78.template +5/−5
- tests/compile-and-dump/Singletons/ReturnFunc.ghc78.template +8/−11
- tests/compile-and-dump/Singletons/Sections.ghc78.template +5/−6
- tests/compile-and-dump/Singletons/Star.ghc78.template +8/−9
- tests/compile-and-dump/Singletons/T29.ghc78.template +8/−12
- tests/compile-and-dump/Singletons/T33.ghc78.template +2/−3
- tests/compile-and-dump/Singletons/TopLevelPatterns.ghc78.template +9/−11
- tests/compile-and-dump/Singletons/Tuples.ghc78.template +34/−36
CHANGES.md view
@@ -1,6 +1,33 @@ Changelog for singletons project ================================ +1.1+---++This is a maintenance release to support building (but *not* testing, due to+GHC bug #10058) with 7.10. This release also targets th-desugar-1.5. Some+types changed (using th-desugar's new `DsMonad` instead of `Quasi`), but+clients generally won't need to make any changes, unless they, too, generalize+over `Quasi`.++1.0+---++This is a complete rewrite of the package.++* A much wider array of surface syntax is now accepted for promotion+and singletonization, including `let`, `case`, partially-applied functions,+and anonymous functions, `where`, sections, among others.++* Classes and instances can be promoted (but not singletonized).++* Derivation of promoted instances for `Ord` and `Bounded`.++This release can be seen as a "technology preview". More features are coming+soon.++This version drops GHC 7.6 support.+ 0.10.0 ------
singletons.cabal view
@@ -1,5 +1,5 @@ name: singletons-version: 1.0+version: 1.1 -- Remember to bump version in the Makefile as well cabal-version: >= 1.10 synopsis: A framework for generating singleton types@@ -9,7 +9,7 @@ maintainer: Richard Eisenberg <eir@cis.upenn.edu>, Jan Stolarek <jan.stolarek@p.lodz.pl> bug-reports: https://github.com/goldfirere/singletons/issues stability: experimental-tested-with: GHC ==7.8.2+tested-with: GHC ==7.8.3 extra-source-files: README.md, CHANGES.md, tests/compile-and-dump/buildGoldenFiles.awk, tests/compile-and-dump/GradingClient/*.hs,@@ -42,7 +42,7 @@ source-repository this type: git location: https://github.com/goldfirere/singletons.git- tag: v1.0+ tag: v1.1 library hs-source-dirs: src@@ -50,7 +50,7 @@ mtl >= 2.1.1, template-haskell, containers >= 0.5,- th-desugar >= 1.4+ th-desugar >= 1.5 && < 1.6 default-language: Haskell2010 default-extensions: TemplateHaskell -- TemplateHaskell must be listed in cabal file to work with
src/Data/Promotion/Prelude.hs view
@@ -102,7 +102,7 @@ FlipSym0, FlipSym1, FlipSym2, AsTypeOfSym0, AsTypeOfSym1, AsTypeOfSym2, SeqSym0, SeqSym1, SeqSym2, - (:$), (:$$), (:$$$), NilSym0, ConsSym0, ConsSym1, ConsSym2,+ (:$), (:$$), (:$$$), NilSym0, MapSym0, MapSym1, MapSym2, ReverseSym0, ReverseSym1, (:++$$), (:++$), HeadSym0, HeadSym1, LastSym0, LastSym1, TailSym0, TailSym1, InitSym0, InitSym1, NullSym0, NullSym1,
src/Data/Promotion/Prelude/List.hs view
@@ -101,8 +101,8 @@ GenericSplitAt, GenericIndex, GenericReplicate, -- * Defunctionalization symbols+ NilSym0, (:$), (:$$), (:$$$),- NilSym0, ConsSym0, ConsSym1, ConsSym2, (:++$$), (:++$), HeadSym0, HeadSym1, LastSym0, LastSym1, TailSym0, TailSym1, InitSym0, InitSym1, NullSym0, NullSym1,
src/Data/Singletons/CustomStar.hs view
@@ -24,7 +24,6 @@ ) where import Language.Haskell.TH-import Language.Haskell.TH.Syntax ( Quasi(..) ) import Data.Singletons.Util import Data.Singletons.Promote import Data.Singletons.Promote.Monad@@ -36,7 +35,6 @@ import Data.Maybe import Control.Applicative import Language.Haskell.TH.Desugar-import Language.Haskell.TH.Desugar.Sweeten import Data.Singletons.Prelude.Eq import Data.Singletons.Prelude.Bool @@ -66,7 +64,7 @@ -- @Bool@, and @Maybe@, not just promoted data constructors. -- -- Please note that this function is /very/ experimental. Use at your own risk.-singletonStar :: Quasi q+singletonStar :: DsMonad q => [Name] -- ^ A list of Template Haskell @Name@s for types -> q [Dec] singletonStar names = do@@ -76,13 +74,13 @@ [''Eq, ''Show, ''Read] fakeCtors <- zipWithM (mkCtor False) names kinds let dataDecl = DataDecl Data repName [] fakeCtors [''Show, ''Read , ''Eq, ''Ord]- promDecls <- promoteM_ $ promoteDataDec dataDecl- singletonDecls <- singDecsM $ singDataD dataDecl+ promDecls <- promoteM_ [] $ promoteDataDec dataDecl+ singletonDecls <- singDecsM [] $ singDataD dataDecl return $ decsToTH $ repDecl : promDecls ++ singletonDecls where -- get the kinds of the arguments to the tycon with the given name- getKind :: Quasi q => Name -> q [DKind]+ getKind :: DsMonad q => Name -> q [DKind] getKind name = do info <- reifyWithWarning name dinfo <- dsInfo info@@ -99,7 +97,7 @@ -- first parameter is whether this is a real ctor (with a fresh name) -- or a fake ctor (when the name is actually a Haskell type)- mkCtor :: Quasi q => Bool -> Name -> [DKind] -> q DCon+ mkCtor :: DsMonad q => Bool -> Name -> [DKind] -> q DCon mkCtor real name args = do (types, vars) <- evalForPair $ mapM kindToType args dataName <- if real then mkDataName (nameBase name) else return name@@ -107,7 +105,7 @@ DNormalC (map (\ty -> (NotStrict, ty)) types) -- demote a kind back to a type, accumulating any unbound parameters- kindToType :: Quasi q => DKind -> QWithAux [Name] q DType+ kindToType :: DsMonad q => DKind -> QWithAux [Name] q DType kindToType (DForallK _ _) = fail "Explicit forall encountered in kind" kindToType (DVarK n) = do addElement n
src/Data/Singletons/Names.hs view
@@ -121,6 +121,9 @@ | name == undefinedName = anyTypeName + | name == nilName+ = mkName $ "NilSym" ++ (show sat)+ | Just degree <- tupleNameDegree_maybe name = mkName $ "Tuple" ++ show degree ++ "Sym" ++ (show sat) @@ -142,7 +145,7 @@ classTvsName :: Name -> Name classTvsName = suffixName "TyVars" "^^^" -mkTyName :: Quasi q => Name -> q Name+mkTyName :: DsMonad q => Name -> q Name mkTyName tmName = do let nameStr = nameBase tmName symbolic = not (isHsLetter (head nameStr))@@ -163,7 +166,7 @@ -- make a Name with an unknown kind into a DTyVarBndr. -- Uses a fresh kind variable for GHC 7.6.3 and PlainTV for 7.8+ -- because 7.8+ has kind inference-inferKindTV :: Quasi q => Name -> q DTyVarBndr+inferKindTV :: DsMonad q => Name -> q DTyVarBndr inferKindTV n = do #if __GLASGOW_HASKELL__ < 707 ki <- fmap DVarK $ qNewName "k"@@ -172,7 +175,7 @@ return $ DPlainTV n #endif -inferMaybeKindTV :: Quasi q => Name -> Maybe DKind -> q DTyVarBndr+inferMaybeKindTV :: DsMonad q => Name -> Maybe DKind -> q DTyVarBndr inferMaybeKindTV n Nothing = #if __GLASGOW_HASKELL__ < 707 do k <- qNewName "k"
src/Data/Singletons/Prelude.hs view
@@ -152,7 +152,7 @@ FlipSym0, FlipSym1, FlipSym2, AsTypeOfSym0, AsTypeOfSym1, AsTypeOfSym2, SeqSym0, SeqSym1, SeqSym2, - (:$), (:$$), (:$$$), NilSym0, ConsSym0, ConsSym1, ConsSym2,+ (:$), (:$$), (:$$$), NilSym0, MapSym0, MapSym1, MapSym2, ReverseSym0, ReverseSym1, (:++$$), (:++$), HeadSym0, HeadSym1, LastSym0, LastSym1, TailSym0, TailSym1, InitSym0, InitSym1, NullSym0, NullSym1,
src/Data/Singletons/Prelude/List.hs view
@@ -101,8 +101,8 @@ MaximumBy, sMaximumBy, MinimumBy, sMinimumBy, -- * Defunctionalization symbols+ NilSym0, (:$), (:$$), (:$$$),- NilSym0, ConsSym0, ConsSym1, ConsSym2, (:++$$), (:++$), HeadSym0, HeadSym1, LastSym0, LastSym1, TailSym0, TailSym1, InitSym0, InitSym1, NullSym0, NullSym1,@@ -497,11 +497,3 @@ |]) --- The symbol []$ is clearly malformed, so we have to name this symbol--- NilSym0-type NilSym0 = '[]---- If Nil has an alphanumeric symbol, we wouldn't want to leave Cons out...-type ConsSym0 = (:$)-type ConsSym1 = (:$$)-type ConsSym2 a b = (:$$$) a b
src/Data/Singletons/Prelude/Ord.hs view
@@ -67,13 +67,13 @@ -- because the latter is often more expensive max x y = if x <= y then y else x min x y = if x <= y then x else y- {-# MINIMAL compare | (<=) #-}+ -- Not handled by TH: {-# MINIMAL compare | (<=) #-} |]) type family CaseOrdering (ord :: Ordering) (lt :: k) (eq :: k) (gt :: k) :: k-type instance CaseOrdering LT lt eq gt = lt-type instance CaseOrdering EQ lt eq gt = eq-type instance CaseOrdering GT lt eq gt = gt+type instance CaseOrdering 'LT lt eq gt = lt+type instance CaseOrdering 'EQ lt eq gt = eq+type instance CaseOrdering 'GT lt eq gt = gt class (kproxy ~ 'KProxy, SEq ('KProxy :: KProxy a)) => SOrd (kproxy :: KProxy a) where@@ -86,28 +86,28 @@ sMin :: forall (x :: a) (y :: a). Sing x -> Sing y -> Sing (Min x y) default sCompare :: forall (x :: a) (y :: a).- (Compare x y ~ If (x :== y) EQ (If (x :<= y) LT GT))+ (Compare x y ~ If (x :== y) 'EQ (If (x :<= y) 'LT 'GT)) => Sing x -> Sing y -> Sing (Compare x y) sCompare x y = sIf (x %:== y) SEQ (sIf (x %:<= y) SLT SGT) default (%:<) :: forall (x :: a) (y :: a).- ((x :< y) ~ CaseOrdering (Compare x y) True False False)+ ((x :< y) ~ CaseOrdering (Compare x y) 'True 'False 'False) => Sing x -> Sing y -> Sing (x :< y) x %:< y = case sCompare x y of { SLT -> STrue; SEQ -> SFalse; SGT -> SFalse } default (%:<=) :: forall (x :: a) (y :: a).- ((x :<= y) ~ CaseOrdering (Compare x y) True True False)+ ((x :<= y) ~ CaseOrdering (Compare x y) 'True 'True 'False) => Sing x -> Sing y -> Sing (x :<= y) x %:<= y = case sCompare x y of { SLT -> STrue; SEQ -> STrue; SGT -> SFalse } default (%:>) :: forall (x :: a) (y :: a).- ((x :> y) ~ CaseOrdering (Compare x y) False False True)+ ((x :> y) ~ CaseOrdering (Compare x y) 'False 'False 'True) => Sing x -> Sing y -> Sing (x :> y) x %:> y = case sCompare x y of { SLT -> SFalse; SEQ -> SFalse; SGT -> STrue } default (%:>=) :: forall (x :: a) (y :: a).- ((x :>= y) ~ CaseOrdering (Compare x y) False True True)+ ((x :>= y) ~ CaseOrdering (Compare x y) 'False 'True 'True) => Sing x -> Sing y -> Sing (x :>= y) x %:>= y = case sCompare x y of { SLT -> SFalse; SEQ -> STrue; SGT -> STrue }
src/Data/Singletons/Promote.hs view
@@ -12,9 +12,9 @@ module Data.Singletons.Promote where import Language.Haskell.TH hiding ( Q, cxt )-import Language.Haskell.TH.Syntax ( Quasi(..) )+import Language.Haskell.TH.Syntax ( qNewName ) import Language.Haskell.TH.Desugar-import Language.Haskell.TH.Desugar.Sweeten+import Language.Haskell.TH.Desugar.Lift () import Data.Singletons.Names import Data.Singletons.Promote.Monad import Data.Singletons.Promote.Eq@@ -33,52 +33,52 @@ -- | Generate promoted definitions from a type that is already defined. -- This is generally only useful with classes.-genPromotions :: Quasi q => [Name] -> q [Dec]+genPromotions :: DsMonad q => [Name] -> q [Dec] genPromotions names = do checkForRep names infos <- mapM reifyWithWarning names dinfos <- mapM dsInfo infos- ddecs <- promoteM_ $ mapM_ promoteInfo dinfos+ ddecs <- promoteM_ [] $ mapM_ promoteInfo dinfos return $ decsToTH ddecs -- | Promote every declaration given to the type level, retaining the originals.-promote :: Quasi q => q [Dec] -> q [Dec]+promote :: DsMonad q => q [Dec] -> q [Dec] promote qdec = do decls <- qdec- ddecls <- dsDecs decls- promDecls <- promoteM_ $ promoteDecs ddecls+ ddecls <- withLocalDeclarations decls $ dsDecs decls+ promDecls <- promoteM_ decls $ promoteDecs ddecls return $ decls ++ decsToTH promDecls -- | Promote each declaration, discarding the originals.-promoteOnly :: Quasi q => q [Dec] -> q [Dec]+promoteOnly :: DsMonad q => q [Dec] -> q [Dec] promoteOnly qdec = do decls <- qdec ddecls <- dsDecs decls- promDecls <- promoteM_ $ promoteDecs ddecls+ promDecls <- promoteM_ decls $ promoteDecs ddecls return $ decsToTH promDecls -- | Generate defunctionalization symbols for existing type family-genDefunSymbols :: Quasi q => [Name] -> q [Dec]+genDefunSymbols :: DsMonad q => [Name] -> q [Dec] genDefunSymbols names = do checkForRep names infos <- mapM (dsInfo <=< reifyWithWarning) names- decs <- promoteMDecs $ concatMapM defunInfo infos+ decs <- promoteMDecs [] $ concatMapM defunInfo infos return $ decsToTH decs -- | Produce instances for '(:==)' (type-level equality) from the given types-promoteEqInstances :: Quasi q => [Name] -> q [Dec]+promoteEqInstances :: DsMonad q => [Name] -> q [Dec] promoteEqInstances = concatMapM promoteEqInstance -- | Produce instances for 'Compare' from the given types-promoteOrdInstances :: Quasi q => [Name] -> q [Dec]+promoteOrdInstances :: DsMonad q => [Name] -> q [Dec] promoteOrdInstances = concatMapM promoteOrdInstance -- | Produce instances for 'MinBound' and 'MaxBound' from the given types-promoteBoundedInstances :: Quasi q => [Name] -> q [Dec]+promoteBoundedInstances :: DsMonad q => [Name] -> q [Dec] promoteBoundedInstances = concatMapM promoteBoundedInstance -- | Produce an instance for '(:==)' (type-level equality) from the given type-promoteEqInstance :: Quasi q => Name -> q [Dec]+promoteEqInstance :: DsMonad q => Name -> q [Dec] promoteEqInstance name = do (_tvbs, cons) <- getDataD "I cannot make an instance of (:==) for it." name cons' <- mapM dsCon cons@@ -93,7 +93,7 @@ #endif -- | Produce an instance for 'Compare' from the given type-promoteOrdInstance :: Quasi q => Name -> q [Dec]+promoteOrdInstance :: DsMonad q => Name -> q [Dec] promoteOrdInstance name = do (_tvbs, cons) <- getDataD "I cannot make an instance of Ord for it." name cons' <- mapM dsCon cons@@ -107,7 +107,7 @@ #endif -- | Produce an instance for 'MinBound' and 'MaxBound' from the given type-promoteBoundedInstance :: Quasi q => Name -> q [Dec]+promoteBoundedInstance :: DsMonad q => Name -> q [Dec] promoteBoundedInstance name = do (_tvbs, cons) <- getDataD "I cannot make an instance of Bounded for it." name cons' <- mapM dsCon cons@@ -327,7 +327,7 @@ lookup_cls_tvb_names :: PrM [String] lookup_cls_tvb_names = case Map.lookup cls_name cls_tvb_env of Nothing -> do- m_dinfo <- qReifyMaybe pClsName+ m_dinfo <- dsReify pClsName case m_dinfo of Just (DTyConI (DClassD _cxt _name cls_tvbs _fds _decs) _insts) -> do mapM extract_kv_name cls_tvbs@@ -378,7 +378,7 @@ Nothing -> do -- lookup the promoted name, just in case the term-level one -- isn't defined- m_dinfo <- qReifyMaybe proName+ m_dinfo <- dsReify proName case m_dinfo of Just (DTyConI (DFamilyD _flav _name tvbs (Just res)) _insts) -> do arg_kis <- mapM (expect_just . extractTvbKind) tvbs@@ -629,6 +629,7 @@ (exp', ann_exp) <- promoteExp exp ty' <- promoteType ty return (DSigT exp' ty', ADSigE ann_exp ty)+promoteExp (DStaticE _) = fail "Promoting static expressions not yet supported" promoteLit :: Monad m => Lit -> m DType promoteLit (IntegerL n)
src/Data/Singletons/Promote/Bounded.hs view
@@ -15,13 +15,12 @@ module Data.Singletons.Promote.Bounded where -import Language.Haskell.TH.Syntax import Language.Haskell.TH.Desugar import Data.Singletons.Names import Data.Singletons.Util import Control.Monad -mkBoundedTypeInstance :: Quasi q => DKind -> [DCon] -> q [DDec]+mkBoundedTypeInstance :: DsMonad q => DKind -> [DCon] -> q [DDec] mkBoundedTypeInstance kind@(DConK name _) cons = do -- We can derive instance of Bounded if datatype is an enumeration (all -- constructors must be nullary) or has only one constructor. See Section 11
src/Data/Singletons/Promote/Eq.hs view
@@ -29,7 +29,7 @@ #if __GLASGOW_HASKELL__ >= 707 -- produce a closed type family helper and the instance -- for (:==) over the given list of ctors-mkEqTypeInstance :: Quasi q => DKind -> [DCon] -> q [DDec]+mkEqTypeInstance :: DsMonad q => DKind -> [DCon] -> q [DDec] mkEqTypeInstance kind cons = do helperName <- newUniqueName "Equals" aName <- qNewName "a"@@ -50,7 +50,7 @@ return [closedFam, inst] - where mk_branch :: Quasi q => DCon -> q DTySynEqn+ where mk_branch :: DsMonad q => DCon -> q DTySynEqn mk_branch con = do let (name, numArgs) = extractNameArgs con lnames <- replicateM numArgs (qNewName "a")@@ -63,7 +63,7 @@ result = tyAll results return $ DTySynEqn [ltype, rtype] result - false_case :: Quasi q => q DTySynEqn+ false_case :: DsMonad q => q DTySynEqn false_case = do lvar <- qNewName "a" rvar <- qNewName "b"@@ -79,7 +79,7 @@ #else -- produce the type instance for (:==) for the given pair of constructors-mkEqTypeInstance :: Quasi q => (DCon, DCon) -> q DDec+mkEqTypeInstance :: DsMonad q => (DCon, DCon) -> q DDec mkEqTypeInstance (c1, c2) = if c1 == c2 then do
src/Data/Singletons/Promote/Monad.hs view
@@ -11,7 +11,6 @@ {-# LANGUAGE GeneralizedNewtypeDeriving, StandaloneDeriving, CPP, FlexibleContexts, TypeFamilies, KindSignatures #-}-{-# OPTIONS_GHC -fno-warn-orphans #-} -- we have orphan Quasi instances module Data.Singletons.Promote.Monad ( PrM, promoteM, promoteM_, promoteMDecs, VarPromotions,@@ -26,75 +25,64 @@ import Language.Haskell.TH.Syntax hiding ( lift ) import Language.Haskell.TH.Desugar import Data.Singletons.Util-import Control.Applicative import Data.Singletons.Names import Data.Singletons.Syntax +#if __GLASGOW_HASKELL__ < 709+import Control.Applicative+#endif+ type LetExpansions = Map Name DType -- from **term-level** name -- environment during promotion data PrEnv = PrEnv { pr_lambda_bound :: Map Name Name , pr_let_bound :: LetExpansions+ , pr_local_decls :: [Dec] } emptyPrEnv :: PrEnv emptyPrEnv = PrEnv { pr_lambda_bound = Map.empty- , pr_let_bound = Map.empty }+ , pr_let_bound = Map.empty+ , pr_local_decls = [] } -- the promotion monad newtype PrM a = PrM (ReaderT PrEnv (WriterT [DDec] Q) a)- deriving ( Functor, Applicative, Monad, Quasi+ deriving ( Functor, Applicative, Monad , MonadReader PrEnv, MonadWriter [DDec] ) --- we need Quasi instances for ReaderT and WriterT for the above to work.+liftPrM :: Q a -> PrM a+liftPrM = PrM . lift . lift -instance (Quasi q, Monoid m) => Quasi (WriterT m q) where- qNewName = lift `comp1` qNewName- qReport = lift `comp2` qReport- qLookupName = lift `comp2` qLookupName- qReify = lift `comp1` qReify- qReifyInstances = lift `comp2` qReifyInstances- qLocation = lift qLocation- qRunIO = lift `comp1` qRunIO- qAddDependentFile = lift `comp1` qAddDependentFile+instance Quasi PrM where+ qNewName = liftPrM `comp1` qNewName+ qReport = liftPrM `comp2` qReport+ qLookupName = liftPrM `comp2` qLookupName+ qReify = liftPrM `comp1` qReify+ qReifyInstances = liftPrM `comp2` qReifyInstances+ qLocation = liftPrM qLocation+ qRunIO = liftPrM `comp1` qRunIO+ qAddDependentFile = liftPrM `comp1` qAddDependentFile #if __GLASGOW_HASKELL__ >= 707- qReifyRoles = lift `comp1` qReifyRoles- qReifyAnnotations = lift `comp1` qReifyAnnotations- qReifyModule = lift `comp1` qReifyModule- qAddTopDecls = lift `comp1` qAddTopDecls- qAddModFinalizer = lift `comp1` qAddModFinalizer- qGetQ = lift qGetQ- qPutQ = lift `comp1` qPutQ+ qReifyRoles = liftPrM `comp1` qReifyRoles+ qReifyAnnotations = liftPrM `comp1` qReifyAnnotations+ qReifyModule = liftPrM `comp1` qReifyModule+ qAddTopDecls = liftPrM `comp1` qAddTopDecls+ qAddModFinalizer = liftPrM `comp1` qAddModFinalizer+ qGetQ = liftPrM qGetQ+ qPutQ = liftPrM `comp1` qPutQ #endif - qRecover handler body = do- (result, aux) <- lift $ qRecover (runWriterT handler) (runWriterT body)+ qRecover (PrM handler) (PrM body) = do+ env <- ask+ (result, aux) <- liftPrM $+ qRecover (runWriterT $ runReaderT handler env)+ (runWriterT $ runReaderT body env) tell aux return result -instance Quasi q => Quasi (ReaderT r q) where- qNewName = lift `comp1` qNewName- qReport = lift `comp2` qReport- qLookupName = lift `comp2` qLookupName- qReify = lift `comp1` qReify- qReifyInstances = lift `comp2` qReifyInstances- qLocation = lift qLocation- qRunIO = lift `comp1` qRunIO- qAddDependentFile = lift `comp1` qAddDependentFile-#if __GLASGOW_HASKELL__ >= 707- qReifyRoles = lift `comp1` qReifyRoles- qReifyAnnotations = lift `comp1` qReifyAnnotations- qReifyModule = lift `comp1` qReifyModule- qAddTopDecls = lift `comp1` qAddTopDecls- qAddModFinalizer = lift `comp1` qAddModFinalizer- qGetQ = lift qGetQ- qPutQ = lift `comp1` qPutQ-#endif-- qRecover handler body = do- env <- ask- lift $ qRecover (runReaderT handler env) (runReaderT body env)+instance DsMonad PrM where+ localDeclarations = asks pr_local_decls -- return *type-level* names allLocals :: MonadReader PrEnv m => m [Name]@@ -139,21 +127,21 @@ Just ty -> return ty Nothing -> return $ promoteValRhs n -promoteM :: Quasi q => PrM a -> q (a, [DDec])-promoteM (PrM rdr) =- let wr = runReaderT rdr emptyPrEnv+promoteM :: DsMonad q => [Dec] -> PrM a -> q (a, [DDec])+promoteM locals (PrM rdr) = do+ other_locals <- localDeclarations+ let wr = runReaderT rdr (emptyPrEnv { pr_local_decls = other_locals ++ locals }) q = runWriterT wr- in runQ q -promoteM_ :: Quasi q => PrM () -> q [DDec]-promoteM_ thing = do- ((), decs) <- promoteM thing+promoteM_ :: DsMonad q => [Dec] -> PrM () -> q [DDec]+promoteM_ locals thing = do+ ((), decs) <- promoteM locals thing return decs -- promoteM specialized to [DDec]-promoteMDecs :: Quasi q => PrM [DDec] -> q [DDec]-promoteMDecs thing = do- (decs1, decs2) <- promoteM thing+promoteMDecs :: DsMonad q => [Dec] -> PrM [DDec] -> q [DDec]+promoteMDecs locals thing = do+ (decs1, decs2) <- promoteM locals thing return $ decs1 ++ decs2
src/Data/Singletons/Promote/Ord.hs view
@@ -20,7 +20,7 @@ import Data.Singletons.Names import Data.Singletons.Util -mkOrdTypeInstance :: Quasi q => DKind -> [DCon] -> q [DDec]+mkOrdTypeInstance :: DsMonad q => DKind -> [DCon] -> q [DDec] mkOrdTypeInstance kind cons = do let tagged_cons = zip cons [1..] con_pairs = [ (c1, c2) | c1 <- tagged_cons, c2 <- tagged_cons ]@@ -31,7 +31,7 @@ tyfam_insts return [pord_inst] -mkOrdTySynEqn :: Quasi q => ((DCon, Int), (DCon, Int)) -> q DTySynEqn+mkOrdTySynEqn :: DsMonad q => ((DCon, Int), (DCon, Int)) -> q DTySynEqn mkOrdTySynEqn ((c1, n1), (c2, n2)) = do let DCon _tvbs1 _cxt1 con_name1 con_fields1 = c1 DCon _tvbs2 _cxt2 con_name2 con_fields2 = c2@@ -119,7 +119,7 @@ ---- (although this implementation requires that we actually compare all fields ---- at the call site). -mkOrdTypeInstance :: Quasi q => DKind -> [DCon] -> q [DDec]+mkOrdTypeInstance :: DsMonad q => DKind -> [DCon] -> q [DDec] mkOrdTypeInstance kind cons = do let taggedCons = zip cons [1..] l = length cons@@ -151,7 +151,7 @@ [DVarT aName, DVarT bName])) return (closedFam : compareInst : eqDecs) - where mkCompareEqn :: Quasi q => Int -> ((DCon, Int), (DCon, Int))+ where mkCompareEqn :: DsMonad q => Int -> ((DCon, Int), (DCon, Int)) -> QWithAux [DDec] q DTySynEqn mkCompareEqn half ((con1, tag1), (con2, tag2)) | tag1 > tag2 && tag1 <= half =@@ -169,7 +169,7 @@ ltT = DConT ordLTSymName gtT = DConT ordGTSymName - mkCompareEqnHelper :: Quasi q => DCon -> Maybe DCon -> DType -> q DTySynEqn+ mkCompareEqnHelper :: DsMonad q => DCon -> Maybe DCon -> DType -> q DTySynEqn mkCompareEqnHelper con1 con2 result = do let (name1, numArgs1) = extractNameArgs con1 (name2, numArgs2) <- case con2 of@@ -184,7 +184,7 @@ rtype = foldType name2 rvars return $ DTySynEqn [ltype, rtype] result - mkCompareEqual :: Quasi q => DCon -> QWithAux [DDec] q DTySynEqn+ mkCompareEqual :: DsMonad q => DCon -> QWithAux [DDec] q DTySynEqn mkCompareEqual con = do let (name, numArgs) = extractNameArgs con case numArgs of@@ -208,7 +208,7 @@ call = foldType (DConT helperName) callParams return $ DTySynEqn [ltype, rtype] call where- buildHelperTyFam :: Quasi q => Int -> Name -> QWithAux [DDec] q ()+ buildHelperTyFam :: DsMonad q => Int -> Name -> QWithAux [DDec] q () buildHelperTyFam numArgs helperName = do let orderingKCon = DConK orderingName [] (patterns, results) <- buildEqnPats numArgs ([[]], [eqT])@@ -222,7 +222,7 @@ addElement closedFam return () - buildEqnPats :: Quasi q => Int -> ([[DType]], [DType])+ buildEqnPats :: DsMonad q => Int -> ([[DType]], [DType]) -> q ([[DType]], [DType]) buildEqnPats 0 acc = return acc buildEqnPats n acc = do
src/Data/Singletons/Single.hs view
@@ -12,7 +12,7 @@ import Prelude hiding ( exp ) import Language.Haskell.TH hiding ( cxt )-import Language.Haskell.TH.Syntax (Quasi(..))+import Language.Haskell.TH.Syntax ( qNewName ) import Data.Singletons.Util import Data.Singletons.Promote import Data.Singletons.Promote.Monad ( promoteM, promoteM_ )@@ -23,7 +23,6 @@ import Data.Singletons.Single.Eq import Data.Singletons.Syntax import Language.Haskell.TH.Desugar-import Language.Haskell.TH.Desugar.Sweeten import qualified Data.Map.Strict as Map import Data.Map.Strict ( Map ) import Control.Monad@@ -69,7 +68,7 @@ -- > $(genSingletons [''Bool, ''Maybe, ''Either, ''[]]) -- -- to generate singletons for Prelude types.-genSingletons :: Quasi q => [Name] -> q [Dec]+genSingletons :: DsMonad q => [Name] -> q [Dec] genSingletons names = do checkForRep names ddecs <- concatMapM (singInfo <=< dsInfo <=< reifyWithWarning) names@@ -79,7 +78,7 @@ -- the original declarations. -- See <http://www.cis.upenn.edu/~eir/packages/singletons/README.html> for -- further explanation.-singletons :: Quasi q => q [Dec] -> q [Dec]+singletons :: DsMonad q => q [Dec] -> q [Dec] singletons qdecs = do decs <- qdecs singDecs <- wrapDesugar singTopLevelDecs decs@@ -87,15 +86,15 @@ -- | Make promoted and singleton versions of all declarations given, discarding -- the original declarations.-singletonsOnly :: Quasi q => q [Dec] -> q [Dec]+singletonsOnly :: DsMonad q => q [Dec] -> q [Dec] singletonsOnly = (>>= wrapDesugar singTopLevelDecs) -- | Create instances of 'SEq' and type-level '(:==)' for each type in the list-singEqInstances :: Quasi q => [Name] -> q [Dec]+singEqInstances :: DsMonad q => [Name] -> q [Dec] singEqInstances = concatMapM singEqInstance -- | Create instance of 'SEq' and type-level '(:==)' for the given type-singEqInstance :: Quasi q => Name -> q [Dec]+singEqInstance :: DsMonad q => Name -> q [Dec] singEqInstance name = do promotion <- promoteEqInstance name dec <- singEqualityInstance sEqClassDesc name@@ -103,12 +102,12 @@ -- | Create instances of 'SEq' (only -- no instance for '(:==)', which 'SEq' generally -- relies on) for each type in the list-singEqInstancesOnly :: Quasi q => [Name] -> q [Dec]+singEqInstancesOnly :: DsMonad q => [Name] -> q [Dec] singEqInstancesOnly = concatMapM singEqInstanceOnly -- | Create instances of 'SEq' (only -- no instance for '(:==)', which 'SEq' generally -- relies on) for the given type-singEqInstanceOnly :: Quasi q => Name -> q [Dec]+singEqInstanceOnly :: DsMonad q => Name -> q [Dec] singEqInstanceOnly name = singEqualityInstance sEqClassDesc name -- | Create instances of 'SDecide' for each type in the list.@@ -116,7 +115,7 @@ -- Note that, due to a bug in GHC 7.6.3 (and lower) optimizing instances -- for SDecide can make GHC hang. You may want to put -- @{-# OPTIONS_GHC -O0 #-}@ in your file.-singDecideInstances :: Quasi q => [Name] -> q [Dec]+singDecideInstances :: DsMonad q => [Name] -> q [Dec] singDecideInstances = concatMapM singDecideInstance -- | Create instance of 'SDecide' for the given type.@@ -124,11 +123,11 @@ -- Note that, due to a bug in GHC 7.6.3 (and lower) optimizing instances -- for SDecide can make GHC hang. You may want to put -- @{-# OPTIONS_GHC -O0 #-}@ in your file.-singDecideInstance :: Quasi q => Name -> q [Dec]+singDecideInstance :: DsMonad q => Name -> q [Dec] singDecideInstance name = singEqualityInstance sDecideClassDesc name -- generalized function for creating equality instances-singEqualityInstance :: Quasi q => EqualityClassDesc q -> Name -> q [Dec]+singEqualityInstance :: DsMonad q => EqualityClassDesc q -> Name -> q [Dec] singEqualityInstance desc@(_, className, _) name = do (tvbs, cons) <- getDataD ("I cannot make an instance of " ++ show className ++ " for it.") name@@ -138,13 +137,13 @@ kind = DConK name tyvars aName <- qNewName "a" let aVar = DVarT aName- (scons, _) <- singM $ mapM (singCtor aVar) dcons+ (scons, _) <- singM [] $ mapM (singCtor aVar) dcons eqInstance <- mkEqualityInstance kind scons desc return $ decToTH eqInstance -singInfo :: Quasi q => DInfo -> q [DDec]+singInfo :: DsMonad q => DInfo -> q [DDec] singInfo (DTyConI dec Nothing) = do -- TODO: document this special case- singTopLevelDecs [dec]+ singTopLevelDecs [] [dec] singInfo (DTyConI {}) = fail "Singling of things with instances not yet supported" -- TODO: fix singInfo (DPrimTyConI _name _numArgs _unlifted) =@@ -154,8 +153,8 @@ singInfo (DTyVarI _name _ty) = fail "Singling of type variable info not supported" -singTopLevelDecs :: Quasi q => [DDec] -> q [DDec]-singTopLevelDecs decls = do+singTopLevelDecs :: DsMonad q => [Dec] -> [DDec] -> q [DDec]+singTopLevelDecs locals decls = do PDecs { pd_let_decs = letDecls , pd_class_decs = classes , pd_instance_decs = insts@@ -164,9 +163,10 @@ when (not (null classes) || not (null insts)) $ qReportError "Classes and instances may not yet be made into singletons." - dataDecls' <- promoteM_ $ promoteDataDecs datas- ((_, letDecEnv), letDecls') <- promoteM $ promoteLetDecs noPrefix letDecls- singDecsM $ do+ dataDecls' <- promoteM_ locals $ promoteDataDecs datas+ ((_, letDecEnv), letDecls') <- promoteM locals $+ promoteLetDecs noPrefix letDecls+ singDecsM locals $ do let letBinds = concatMap buildDataLets datas ++ concatMap buildMethLets classes (newLetDecls, newDataDecls) <- bindLets letBinds $
src/Data/Singletons/Single/Eq.hs view
@@ -17,12 +17,12 @@ -- making the SEq instance and the SDecide instance are rather similar, -- so we generalize type EqualityClassDesc q = ((DCon, DCon) -> q DClause, Name, Name)-sEqClassDesc, sDecideClassDesc :: Quasi q => EqualityClassDesc q+sEqClassDesc, sDecideClassDesc :: DsMonad q => EqualityClassDesc q sEqClassDesc = (mkEqMethClause, sEqClassName, sEqMethName) sDecideClassDesc = (mkDecideMethClause, sDecideClassName, sDecideMethName) -- pass the *singleton* constructors, not the originals-mkEqualityInstance :: Quasi q => DKind -> [DCon]+mkEqualityInstance :: DsMonad q => DKind -> [DCon] -> EqualityClassDesc q -> q DDec mkEqualityInstance k ctors (mkMeth, className, methName) = do let ctorPairs = [ (c1, c2) | c1 <- ctors, c2 <- ctors ]@@ -42,12 +42,12 @@ getKindVars other = error ("getKindVars sees an unusual kind: " ++ show other) - mkEmptyMethClauses :: Quasi q => q [DClause]+ mkEmptyMethClauses :: DsMonad q => q [DClause] mkEmptyMethClauses = do a <- qNewName "a" return [DClause [DVarPa a, DWildPa] (DCaseE (DVarE a) emptyMatches)] -mkEqMethClause :: Quasi q => (DCon, DCon) -> q DClause+mkEqMethClause :: DsMonad q => (DCon, DCon) -> q DClause mkEqMethClause (c1, c2) | lname == rname = do lnames <- replicateM lNumArgs (qNewName "a")@@ -73,7 +73,7 @@ (lname, lNumArgs) = extractNameArgs c1 (rname, rNumArgs) = extractNameArgs c2 -mkDecideMethClause :: Quasi q => (DCon, DCon) -> q DClause+mkDecideMethClause :: DsMonad q => (DCon, DCon) -> q DClause mkDecideMethClause (c1, c2) | lname == rname = if lNumArgs == 0
src/Data/Singletons/Single/Monad.hs view
@@ -9,7 +9,7 @@ -} {-# LANGUAGE GeneralizedNewtypeDeriving, ParallelListComp,- TemplateHaskell #-}+ TemplateHaskell, CPP #-} module Data.Singletons.Single.Monad ( SgM, bindLets, bindTyVars, bindTyVarsClause, lookupVarE, lookupConE,@@ -27,24 +27,60 @@ import Data.Singletons import Language.Haskell.TH.Syntax hiding ( lift ) import Language.Haskell.TH.Desugar-import Control.Applicative import Control.Monad.Reader import Control.Monad.Writer +#if __GLASGOW_HASKELL__ < 709+import Control.Applicative+#endif+ -- environment during singling data SgEnv =- SgEnv { sg_let_binds :: Map Name DExp -- from the *original* name+ SgEnv { sg_let_binds :: Map Name DExp -- from the *original* name+ , sg_local_decls :: [Dec] } emptySgEnv :: SgEnv-emptySgEnv = SgEnv { sg_let_binds = Map.empty+emptySgEnv = SgEnv { sg_let_binds = Map.empty+ , sg_local_decls = [] } -- the singling monad newtype SgM a = SgM (ReaderT SgEnv (WriterT [DDec] Q) a)- deriving ( Functor, Applicative, Monad, Quasi+ deriving ( Functor, Applicative, Monad , MonadReader SgEnv, MonadWriter [DDec] ) +liftSgM :: Q a -> SgM a+liftSgM = SgM . lift . lift++instance Quasi SgM where+ qNewName = liftSgM `comp1` qNewName+ qReport = liftSgM `comp2` qReport+ qLookupName = liftSgM `comp2` qLookupName+ qReify = liftSgM `comp1` qReify+ qReifyInstances = liftSgM `comp2` qReifyInstances+ qLocation = liftSgM qLocation+ qRunIO = liftSgM `comp1` qRunIO+ qAddDependentFile = liftSgM `comp1` qAddDependentFile+ qReifyRoles = liftSgM `comp1` qReifyRoles+ qReifyAnnotations = liftSgM `comp1` qReifyAnnotations+ qReifyModule = liftSgM `comp1` qReifyModule+ qAddTopDecls = liftSgM `comp1` qAddTopDecls+ qAddModFinalizer = liftSgM `comp1` qAddModFinalizer+ qGetQ = liftSgM qGetQ+ qPutQ = liftSgM `comp1` qPutQ++ qRecover (SgM handler) (SgM body) = do+ env <- ask+ (result, aux) <- liftSgM $+ qRecover (runWriterT $ runReaderT handler env)+ (runWriterT $ runReaderT body env)+ tell aux+ return result++instance DsMonad SgM where+ localDeclarations = asks sg_local_decls+ bindLets :: [(Name, DExp)] -> SgM a -> SgM a bindLets lets1 = local (\env@(SgEnv { sg_let_binds = lets2 }) ->@@ -142,7 +178,7 @@ case Map.lookup name letExpansions of Nothing -> do -- try to get it from the global context- m_dinfo <- qReifyMaybe sName+ m_dinfo <- dsReify sName case m_dinfo of Just (DVarI _ ty _ _) -> let num_args = countArgs ty in@@ -180,14 +216,14 @@ in (unwrap_fun `DAppE` proxyFor ty `DAppE`) -singM :: Quasi q => SgM a -> q (a, [DDec])-singM (SgM rdr) =- let wr = runReaderT rdr emptySgEnv+singM :: DsMonad q => [Dec] -> SgM a -> q (a, [DDec])+singM locals (SgM rdr) = do+ other_locals <- localDeclarations+ let wr = runReaderT rdr (emptySgEnv { sg_local_decls = other_locals ++ locals }) q = runWriterT wr- in runQ q -singDecsM :: Quasi q => SgM [DDec] -> q [DDec]-singDecsM thing = do- (decs1, decs2) <- singM thing+singDecsM :: DsMonad q => [Dec] -> SgM [DDec] -> q [DDec]+singDecsM locals thing = do+ (decs1, decs2) <- singM locals thing return $ decs1 ++ decs2
src/Data/Singletons/Syntax.hs view
@@ -18,7 +18,6 @@ import Language.Haskell.TH.Syntax import Language.Haskell.TH.Desugar import Language.Haskell.TH.Ppr-import Language.Haskell.TH.Desugar.Sweeten import Data.Map.Strict ( Map ) import qualified Data.Map.Strict as Map import Data.Maybe@@ -117,6 +116,10 @@ data AnnotationFlag = Annotated | Unannotated +-- these will be promoted a lot!+type Annotated = 'Annotated+type Unannotated = 'Unannotated+ type family IfAnn (ann :: AnnotationFlag) (yes :: k) (no :: k) :: k type instance IfAnn Annotated yes no = yes type instance IfAnn Unannotated yes no = no@@ -155,7 +158,7 @@ emptyLetDecEnv :: ULetDecEnv emptyLetDecEnv = mempty -buildLetDecEnv :: Quasi q => [DLetDec] -> q ULetDecEnv+buildLetDecEnv :: DsMonad q => [DLetDec] -> q ULetDecEnv buildLetDecEnv = go emptyLetDecEnv where go acc [] = return acc
src/Data/Singletons/TH.hs view
@@ -78,11 +78,9 @@ import Data.Singletons.TypeLits import Data.Singletons.SuppressUnusedWarnings import Language.Haskell.TH.Desugar-import Language.Haskell.TH.Desugar.Sweeten import GHC.Exts import Language.Haskell.TH-import Language.Haskell.TH.Syntax ( Quasi(..) ) import Data.Singletons.Util import Control.Applicative @@ -90,13 +88,13 @@ -- is identical. This may be useful if the type-checker requires knowledge of which -- constructor is used to satisfy equality or type-class constraints, but where -- each constructor is treated the same.-cases :: Quasi q+cases :: DsMonad q => Name -- ^ The head of the type of the scrutinee. (Like @''Maybe@ or @''Bool@.) -> q Exp -- ^ The scrutinee, in a Template Haskell quote -> q Exp -- ^ The body, in a Template Haskell quote -> q Exp cases tyName expq bodyq = do- info <- reifyWithWarning tyName+ info <- reifyWithLocals tyName dinfo <- dsInfo info case dinfo of DTyConI (DDataD _ _ _ _ ctors _) _ -> fmap expToTH $ buildCases ctors
src/Data/Singletons/TypeRepStar.hs view
@@ -88,7 +88,7 @@ -- everything below here is private and dirty. Don't look! -newtype DI = Don'tInstantiate (Typeable a => Sing a)+newtype DI = Don'tInstantiate (forall a. Typeable a => Sing a) dirty_mk_STypeRep :: TypeRep -> SomeSing ('KProxy :: KProxy *) dirty_mk_STypeRep rep = #if __GLASGOW_HASKELL__ >= 707
src/Data/Singletons/Util.hs view
@@ -46,58 +46,25 @@ , ''(,,,,,,) ] -qReifyMaybe :: Quasi q => Name -> q (Maybe DInfo)-qReifyMaybe name = do- m_info <- qRecover (return Nothing) (fmap Just $ qReify name)- traverse dsInfo m_info---- like reportWarning, but generalized to any Quasi-qReportWarning :: Quasi q => String -> q ()+-- like reportWarning, but generalized to any DsMonad+qReportWarning :: DsMonad q => String -> q () qReportWarning = qReport False --- like reportError, but generalized to any Quasi-qReportError :: Quasi q => String -> q ()+-- like reportError, but generalized to any DsMonad+qReportError :: DsMonad q => String -> q () qReportError = qReport True -checkForRep :: Quasi q => [Name] -> q ()+checkForRep :: DsMonad q => [Name] -> q () checkForRep names = when (any ((== "Rep") . nameBase) names) (fail $ "A data type named <<Rep>> is a special case.\n" ++ "Promoting it will not work as expected.\n" ++ "Please choose another name for your data type.") -checkForRepInDecls :: Quasi q => [DDec] -> q ()+checkForRepInDecls :: DsMonad q => [DDec] -> q () checkForRepInDecls decls = checkForRep (allNamesIn decls) --- extract the degree of a tuple-tupleDegree_maybe :: String -> Maybe Int-tupleDegree_maybe s = do- '(' : s1 <- return s- (commas, ")") <- return $ span (== ',') s1- let degree- | "" <- commas = 0- | otherwise = length commas + 1- return degree---- extract the degree of a tuple name-tupleNameDegree_maybe :: Name -> Maybe Int-tupleNameDegree_maybe = tupleDegree_maybe . nameBase---- extract the degree of an unboxed tuple-unboxedTupleDegree_maybe :: String -> Maybe Int-unboxedTupleDegree_maybe s = do- '(' : '#' : s1 <- return s- (commas, "#)") <- return $ span (== ',') s1- let degree- | "" <- commas = 0- | otherwise = length commas + 1- return degree---- extract the degree of a tuple name-unboxedTupleNameDegree_maybe :: Name -> Maybe Int-unboxedTupleNameDegree_maybe = unboxedTupleDegree_maybe . nameBase- tysOfConFields :: DConFields -> [DType] tysOfConFields (DNormalC stys) = map snd stys tysOfConFields (DRecC vstys) = map (\(_,_,ty) -> ty) vstys@@ -177,7 +144,7 @@ extractTvbName (DKindedTV n _) = n -- use the kind provided, or make a fresh kind variable-inferKind :: Quasi q => Maybe DKind -> q (Maybe DKind)+inferKind :: DsMonad q => Maybe DKind -> q (Maybe DKind) inferKind (Just k) = return $ Just k #if __GLASGOW_HASKELL__ < 707 inferKind Nothing = do@@ -250,18 +217,17 @@ DCaseE (mkTupleDExp scruts) [DMatch (mkTupleDPat pats) body] -- Make a desugar function into a TH function.-wrapDesugar :: (Desugar th ds, Quasi q) => (ds -> q ds) -> th -> q th+wrapDesugar :: (Desugar th ds, DsMonad q) => (th -> ds -> q ds) -> th -> q th wrapDesugar f th = do ds <- desugar th- fmap sweeten $ f ds+ fmap sweeten $ f th ds -- a monad transformer for writing a monoid alongside returning a Q newtype QWithAux m q a = QWA { runQWA :: WriterT m q a }- deriving (Functor, Applicative, Monad, MonadTrans, MonadWriter m)--deriving instance (Monoid m, MonadReader r q) => MonadReader r (QWithAux m q)+ deriving ( Functor, Applicative, Monad, MonadTrans+ , MonadWriter m, MonadReader r ) --- make a Quasi instance for easy lifting+-- make a DsMonad instance for easy lifting instance (Quasi q, Monoid m) => Quasi (QWithAux m q) where qNewName = lift `comp1` qNewName qReport = lift `comp2` qReport@@ -285,6 +251,9 @@ (result, aux) <- lift $ qRecover (evalForPair exp) (evalForPair handler) tell aux return result++instance (DsMonad q, Monoid m) => DsMonad (QWithAux m q) where+ localDeclarations = lift localDeclarations -- helper functions for composition comp1 :: (b -> c) -> (a -> b) -> a -> c
tests/SingletonsTestSuiteUtils.hs view
@@ -26,6 +26,8 @@ import Data.Version ( showVersion ) import System.IO.Unsafe ( unsafePerformIO ) +#include "../dist/build/autogen/cabal_macros.h"+ -- Some infractructure for handling external process errors data ProcessException = ProcessException String deriving (Typeable) @@ -70,7 +72,11 @@ ghcOpts = [ "-v0" , "-c"+#if __GLASGOW_HASKELL__ < 709 , "-package-name singletons-" ++ singletonsVersion -- See Note [-package-name hack]+#else+ , "-this-package-key " ++ CURRENT_PACKAGE_KEY+#endif , "-ddump-splices" , "-dsuppress-uniques" , "-fforce-recomp"
tests/compile-and-dump/GradingClient/Database.ghc78.template view
@@ -25,12 +25,12 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) SuccSym0KindInference GHC.Tuple.()) data SuccSym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply SuccSym0 arg)) (KindOf (SuccSym1 arg)) =>+ = forall arg. KindOf (Apply SuccSym0 arg) ~ KindOf (SuccSym1 arg) => SuccSym0KindInference type instance Apply SuccSym0 l = SuccSym1 l data instance Sing (z :: Nat)- = (GHC.Types.~) z Zero => SZero |- forall (n :: Nat). (GHC.Types.~) z (Succ n) => SSucc (Sing n)+ = 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@@ -188,14 +188,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) VECSym1KindInference GHC.Tuple.()) data VECSym1 (l :: U) (l :: TyFun Nat U)- = forall arg. (GHC.Types.~) (KindOf (Apply (VECSym1 l) arg)) (KindOf (VECSym2 l arg)) =>+ = forall arg. KindOf (Apply (VECSym1 l) arg) ~ KindOf (VECSym2 l arg) => VECSym1KindInference type instance Apply (VECSym1 l) l = VECSym2 l l instance SuppressUnusedWarnings VECSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) VECSym0KindInference GHC.Tuple.()) data VECSym0 (l :: TyFun U (TyFun Nat U -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply VECSym0 arg)) (KindOf (VECSym1 arg)) =>+ = forall arg. KindOf (Apply VECSym0 arg) ~ KindOf (VECSym1 arg) => VECSym0KindInference type instance Apply VECSym0 l = VECSym1 l type family Equals_0123456789 (a :: AChar)@@ -260,7 +260,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) AttrSym1KindInference GHC.Tuple.()) data AttrSym1 (l :: GHC.Types.[] AChar) (l :: TyFun U Attribute)- = forall arg. (GHC.Types.~) (KindOf (Apply (AttrSym1 l) arg)) (KindOf (AttrSym2 l arg)) =>+ = forall arg. KindOf (Apply (AttrSym1 l) arg) ~ KindOf (AttrSym2 l arg) => AttrSym1KindInference type instance Apply (AttrSym1 l) l = AttrSym2 l l instance SuppressUnusedWarnings AttrSym0 where@@ -268,7 +268,7 @@ = snd (GHC.Tuple.(,) AttrSym0KindInference GHC.Tuple.()) data AttrSym0 (l :: TyFun (GHC.Types.[] AChar) (TyFun U Attribute -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply AttrSym0 arg)) (KindOf (AttrSym1 arg)) =>+ = forall arg. KindOf (Apply AttrSym0 arg) ~ KindOf (AttrSym1 arg) => AttrSym0KindInference type instance Apply AttrSym0 l = AttrSym1 l type SchSym1 (t :: GHC.Types.[] Attribute) = Sch t@@ -276,7 +276,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) SchSym0KindInference GHC.Tuple.()) data SchSym0 (l :: TyFun (GHC.Types.[] Attribute) Schema)- = forall arg. (GHC.Types.~) (KindOf (Apply SchSym0 arg)) (KindOf (SchSym1 arg)) =>+ = forall arg. KindOf (Apply SchSym0 arg) ~ KindOf (SchSym1 arg) => SchSym0KindInference type instance Apply SchSym0 l = SchSym1 l type Let_0123456789Scrutinee_0123456789Sym4 t t t t =@@ -287,7 +287,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym3KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym3 l l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym3 l l l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym3 l l l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym4 l l l arg) => Let_0123456789Scrutinee_0123456789Sym3KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym3 l l l) l = Let_0123456789Scrutinee_0123456789Sym4 l l l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym2 where@@ -296,7 +296,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym2KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym3 l l arg) => Let_0123456789Scrutinee_0123456789Sym2KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) l = Let_0123456789Scrutinee_0123456789Sym3 l l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym1 where@@ -305,7 +305,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym1KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg) => Let_0123456789Scrutinee_0123456789Sym1KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym1 l) l = Let_0123456789Scrutinee_0123456789Sym2 l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym0 where@@ -314,7 +314,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym0KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg) => Let_0123456789Scrutinee_0123456789Sym0KindInference type instance Apply Let_0123456789Scrutinee_0123456789Sym0 l = Let_0123456789Scrutinee_0123456789Sym1 l type Let_0123456789Scrutinee_0123456789 name name' u attrs =@@ -328,7 +328,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) LookupSym1KindInference GHC.Tuple.()) data LookupSym1 (l :: GHC.Types.[] AChar) (l :: TyFun Schema U)- = forall arg. (GHC.Types.~) (KindOf (Apply (LookupSym1 l) arg)) (KindOf (LookupSym2 l arg)) =>+ = forall arg. KindOf (Apply (LookupSym1 l) arg) ~ KindOf (LookupSym2 l arg) => LookupSym1KindInference type instance Apply (LookupSym1 l) l = LookupSym2 l l instance SuppressUnusedWarnings LookupSym0 where@@ -336,7 +336,7 @@ = snd (GHC.Tuple.(,) LookupSym0KindInference GHC.Tuple.()) data LookupSym0 (l :: TyFun (GHC.Types.[] AChar) (TyFun Schema U -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply LookupSym0 arg)) (KindOf (LookupSym1 arg)) =>+ = forall arg. KindOf (Apply LookupSym0 arg) ~ KindOf (LookupSym1 arg) => LookupSym0KindInference type instance Apply LookupSym0 l = LookupSym1 l type OccursSym2 (t :: GHC.Types.[] AChar) (t :: Schema) =@@ -345,7 +345,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) OccursSym1KindInference GHC.Tuple.()) data OccursSym1 (l :: GHC.Types.[] AChar) (l :: TyFun Schema Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply (OccursSym1 l) arg)) (KindOf (OccursSym2 l arg)) =>+ = forall arg. KindOf (Apply (OccursSym1 l) arg) ~ KindOf (OccursSym2 l arg) => OccursSym1KindInference type instance Apply (OccursSym1 l) l = OccursSym2 l l instance SuppressUnusedWarnings OccursSym0 where@@ -353,7 +353,7 @@ = snd (GHC.Tuple.(,) OccursSym0KindInference GHC.Tuple.()) data OccursSym0 (l :: TyFun (GHC.Types.[] AChar) (TyFun Schema Bool -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply OccursSym0 arg)) (KindOf (OccursSym1 arg)) =>+ = forall arg. KindOf (Apply OccursSym0 arg) ~ KindOf (OccursSym1 arg) => OccursSym0KindInference type instance Apply OccursSym0 l = OccursSym1 l type AttrNotInSym2 (t :: Attribute) (t :: Schema) = AttrNotIn t t@@ -361,14 +361,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) AttrNotInSym1KindInference GHC.Tuple.()) data AttrNotInSym1 (l :: Attribute) (l :: TyFun Schema Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply (AttrNotInSym1 l) arg)) (KindOf (AttrNotInSym2 l arg)) =>+ = forall arg. KindOf (Apply (AttrNotInSym1 l) arg) ~ KindOf (AttrNotInSym2 l arg) => AttrNotInSym1KindInference type instance Apply (AttrNotInSym1 l) l = AttrNotInSym2 l l instance SuppressUnusedWarnings AttrNotInSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) AttrNotInSym0KindInference GHC.Tuple.()) data AttrNotInSym0 (l :: TyFun Attribute (TyFun Schema Bool -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply AttrNotInSym0 arg)) (KindOf (AttrNotInSym1 arg)) =>+ = forall arg. KindOf (Apply AttrNotInSym0 arg) ~ KindOf (AttrNotInSym1 arg) => AttrNotInSym0KindInference type instance Apply AttrNotInSym0 l = AttrNotInSym1 l type DisjointSym2 (t :: Schema) (t :: Schema) = Disjoint t t@@ -376,14 +376,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) DisjointSym1KindInference GHC.Tuple.()) data DisjointSym1 (l :: Schema) (l :: TyFun Schema Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply (DisjointSym1 l) arg)) (KindOf (DisjointSym2 l arg)) =>+ = forall arg. KindOf (Apply (DisjointSym1 l) arg) ~ KindOf (DisjointSym2 l arg) => DisjointSym1KindInference type instance Apply (DisjointSym1 l) l = DisjointSym2 l l instance SuppressUnusedWarnings DisjointSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) DisjointSym0KindInference GHC.Tuple.()) data DisjointSym0 (l :: TyFun Schema (TyFun Schema Bool -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply DisjointSym0 arg)) (KindOf (DisjointSym1 arg)) =>+ = forall arg. KindOf (Apply DisjointSym0 arg) ~ KindOf (DisjointSym1 arg) => DisjointSym0KindInference type instance Apply DisjointSym0 l = DisjointSym1 l type AppendSym2 (t :: Schema) (t :: Schema) = Append t t@@ -391,14 +391,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) AppendSym1KindInference GHC.Tuple.()) data AppendSym1 (l :: Schema) (l :: TyFun Schema Schema)- = forall arg. (GHC.Types.~) (KindOf (Apply (AppendSym1 l) arg)) (KindOf (AppendSym2 l arg)) =>+ = forall arg. KindOf (Apply (AppendSym1 l) arg) ~ KindOf (AppendSym2 l arg) => AppendSym1KindInference type instance Apply (AppendSym1 l) l = AppendSym2 l l instance SuppressUnusedWarnings AppendSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) AppendSym0KindInference GHC.Tuple.()) data AppendSym0 (l :: TyFun Schema (TyFun Schema Schema -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply AppendSym0 arg)) (KindOf (AppendSym1 arg)) =>+ = forall arg. KindOf (Apply AppendSym0 arg) ~ KindOf (AppendSym1 arg) => AppendSym0KindInference type instance Apply AppendSym0 l = AppendSym1 l type family Lookup (a :: GHC.Types.[] AChar)@@ -435,16 +435,15 @@ sLookup _ (SSch SNil) = let lambda ::- forall wild. ((GHC.Types.~) t wild,- (GHC.Types.~) t (Apply SchSym0 GHC.Types.[])) =>+ forall wild. (t ~ wild, t ~ Apply SchSym0 GHC.Types.[]) => Sing (Apply (Apply LookupSym0 wild) (Apply SchSym0 GHC.Types.[])) lambda = undefined in lambda sLookup sName (SSch (SCons (SAttr sName' sU) sAttrs)) = let lambda ::- forall name name' u attrs. ((GHC.Types.~) t name,- (GHC.Types.~) t (Apply SchSym0 (Apply (Apply (:$) (Apply (Apply AttrSym0 name') u)) attrs))) =>+ forall name name' u attrs. (t ~ name,+ t ~ Apply SchSym0 (Apply (Apply (:$) (Apply (Apply AttrSym0 name') u)) attrs)) => Sing name -> Sing name' -> Sing u@@ -476,16 +475,15 @@ sOccurs _ (SSch SNil) = let lambda ::- forall wild. ((GHC.Types.~) t wild,- (GHC.Types.~) t (Apply SchSym0 GHC.Types.[])) =>+ forall wild. (t ~ wild, t ~ Apply SchSym0 GHC.Types.[]) => Sing (Apply (Apply OccursSym0 wild) (Apply SchSym0 GHC.Types.[])) lambda = SFalse in lambda sOccurs sName (SSch (SCons (SAttr sName' _) sAttrs)) = let lambda ::- forall name name' attrs wild. ((GHC.Types.~) t name,- (GHC.Types.~) t (Apply SchSym0 (Apply (Apply (:$) (Apply (Apply AttrSym0 name') wild)) attrs))) =>+ forall name name' attrs wild. (t ~ name,+ t ~ Apply SchSym0 (Apply (Apply (:$) (Apply (Apply AttrSym0 name') wild)) attrs)) => Sing name -> Sing name' -> Sing attrs@@ -503,20 +501,15 @@ sAttrNotIn _ (SSch SNil) = let lambda ::- forall wild. ((GHC.Types.~) t wild,- (GHC.Types.~) t (Apply SchSym0 GHC.Types.[])) =>+ forall wild. (t ~ wild, t ~ Apply SchSym0 GHC.Types.[]) => Sing (Apply (Apply AttrNotInSym0 wild) (Apply SchSym0 GHC.Types.[])) lambda = STrue in lambda sAttrNotIn (SAttr sName sU) (SSch (SCons (SAttr sName' _) sT)) = let lambda ::- forall name- u- name'- t- wild. ((GHC.Types.~) t (Apply (Apply AttrSym0 name) u),- (GHC.Types.~) t (Apply SchSym0 (Apply (Apply (:$) (Apply (Apply AttrSym0 name') wild)) t))) =>+ forall name u name' t wild. (t ~ Apply (Apply AttrSym0 name) u,+ t ~ Apply SchSym0 (Apply (Apply (:$) (Apply (Apply AttrSym0 name') wild)) t)) => Sing name -> Sing u -> Sing name'@@ -538,18 +531,15 @@ sDisjoint (SSch SNil) _ = let lambda ::- forall wild. ((GHC.Types.~) t (Apply SchSym0 GHC.Types.[]),- (GHC.Types.~) t wild) =>+ forall wild. (t ~ Apply SchSym0 GHC.Types.[], t ~ wild) => Sing (Apply (Apply DisjointSym0 (Apply SchSym0 GHC.Types.[])) wild) lambda = STrue in lambda sDisjoint (SSch (SCons sH sT)) sS = let lambda ::- forall h- t- s. ((GHC.Types.~) t (Apply SchSym0 (Apply (Apply (:$) h) t)),- (GHC.Types.~) t s) =>+ forall h t s. (t ~ Apply SchSym0 (Apply (Apply (:$) h) t),+ t ~ s) => Sing h -> Sing t -> Sing s@@ -570,8 +560,7 @@ sAppend (SSch sS1) (SSch sS2) = let lambda ::- forall s1 s2. ((GHC.Types.~) t (Apply SchSym0 s1),- (GHC.Types.~) t (Apply SchSym0 s2)) =>+ forall s1 s2. (t ~ Apply SchSym0 s1, t ~ Apply SchSym0 s2) => Sing s1 -> Sing s2 -> Sing (Apply (Apply AppendSym0 (Apply SchSym0 s1)) (Apply SchSym0 s2))@@ -582,11 +571,10 @@ (applySing (singFun2 (Proxy :: Proxy (:++$)) (%:++)) s1) s2) in lambda sS1 sS2 data instance Sing (z :: U)- = (GHC.Types.~) z BOOL => SBOOL |- (GHC.Types.~) z STRING => SSTRING |- (GHC.Types.~) z NAT => SNAT |- forall (n :: U) (n :: Nat). (GHC.Types.~) z (VEC n n) =>- SVEC (Sing n) (Sing n)+ = 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@@ -693,32 +681,32 @@ GHC.Tuple.(,) _ (Disproved contra) -> Disproved (\ refl -> case refl of { Refl -> contra Refl }) } data instance Sing (z :: AChar)- = (GHC.Types.~) z CA => SCA |- (GHC.Types.~) z CB => SCB |- (GHC.Types.~) z CC => SCC |- (GHC.Types.~) z CD => SCD |- (GHC.Types.~) z CE => SCE |- (GHC.Types.~) z CF => SCF |- (GHC.Types.~) z CG => SCG |- (GHC.Types.~) z CH => SCH |- (GHC.Types.~) z CI => SCI |- (GHC.Types.~) z CJ => SCJ |- (GHC.Types.~) z CK => SCK |- (GHC.Types.~) z CL => SCL |- (GHC.Types.~) z CM => SCM |- (GHC.Types.~) z CN => SCN |- (GHC.Types.~) z CO => SCO |- (GHC.Types.~) z CP => SCP |- (GHC.Types.~) z CQ => SCQ |- (GHC.Types.~) z CR => SCR |- (GHC.Types.~) z CS => SCS |- (GHC.Types.~) z CT => SCT |- (GHC.Types.~) z CU => SCU |- (GHC.Types.~) z CV => SCV |- (GHC.Types.~) z CW => SCW |- (GHC.Types.~) z CX => SCX |- (GHC.Types.~) z CY => SCY |- (GHC.Types.~) z CZ => SCZ+ = 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@@ -4729,8 +4717,7 @@ _ -> error "Empty case reached -- this should be impossible" }) (%~) SCZ SCZ = Proved Refl data instance Sing (z :: Attribute)- = forall (n :: GHC.Types.[] AChar)- (n :: U). (GHC.Types.~) z (Attr n n) =>+ = forall (n :: GHC.Types.[] AChar) (n :: U). z ~ Attr n n => SAttr (Sing n) (Sing n) type SAttribute (z :: Attribute) = Sing z instance SingKind (KProxy :: KProxy Attribute) where@@ -4744,8 +4731,7 @@ of { GHC.Tuple.(,) (SomeSing c) (SomeSing c) -> SomeSing (SAttr c c) } data instance Sing (z :: Schema)- = forall (n :: GHC.Types.[] Attribute). (GHC.Types.~) z (Sch n) =>- SSch (Sing n)+ = forall (n :: GHC.Types.[] 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
tests/compile-and-dump/GradingClient/Database.hs view
@@ -12,6 +12,7 @@ GADTs, TypeOperators, RankNTypes, FlexibleContexts, UndecidableInstances, FlexibleInstances, ScopedTypeVariables, MultiParamTypeClasses, OverlappingInstances, ConstraintKinds, CPP #-}+{-# OPTIONS_GHC -fno-warn-warnings-deprecations #-} -- The OverlappingInstances is needed only to allow the InC and SubsetC classes. -- This is simply a convenience so that GHC can infer the necessary proofs of
tests/compile-and-dump/InsertionSort/InsertionSortImp.ghc78.template view
@@ -9,12 +9,12 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) SuccSym0KindInference GHC.Tuple.()) data SuccSym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply SuccSym0 arg)) (KindOf (SuccSym1 arg)) =>+ = forall arg. KindOf (Apply SuccSym0 arg) ~ KindOf (SuccSym1 arg) => SuccSym0KindInference type instance Apply SuccSym0 l = SuccSym1 l data instance Sing (z :: Nat)- = (GHC.Types.~) z Zero => SZero |- forall (n :: Nat). (GHC.Types.~) z (Succ n) => SSucc (Sing n)+ = 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@@ -65,7 +65,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym2KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym3 l l arg) => Let_0123456789Scrutinee_0123456789Sym2KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) l = Let_0123456789Scrutinee_0123456789Sym3 l l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym1 where@@ -74,7 +74,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym1KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg) => Let_0123456789Scrutinee_0123456789Sym1KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym1 l) l = Let_0123456789Scrutinee_0123456789Sym2 l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym0 where@@ -83,7 +83,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym0KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg) => Let_0123456789Scrutinee_0123456789Sym0KindInference type instance Apply Let_0123456789Scrutinee_0123456789Sym0 l = Let_0123456789Scrutinee_0123456789Sym1 l type Let_0123456789Scrutinee_0123456789 n h t =@@ -96,14 +96,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) LeqSym1KindInference GHC.Tuple.()) data LeqSym1 (l :: Nat) (l :: TyFun Nat Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply (LeqSym1 l) arg)) (KindOf (LeqSym2 l arg)) =>+ = forall arg. KindOf (Apply (LeqSym1 l) arg) ~ KindOf (LeqSym2 l arg) => LeqSym1KindInference type instance Apply (LeqSym1 l) l = LeqSym2 l l instance SuppressUnusedWarnings LeqSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) LeqSym0KindInference GHC.Tuple.()) data LeqSym0 (l :: TyFun Nat (TyFun Nat Bool -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply LeqSym0 arg)) (KindOf (LeqSym1 arg)) =>+ = forall arg. KindOf (Apply LeqSym0 arg) ~ KindOf (LeqSym1 arg) => LeqSym0KindInference type instance Apply LeqSym0 l = LeqSym1 l type InsertSym2 (t :: Nat) (t :: GHC.Types.[] Nat) = Insert t t@@ -112,7 +112,7 @@ = snd (GHC.Tuple.(,) InsertSym1KindInference GHC.Tuple.()) data InsertSym1 (l :: Nat) (l :: TyFun (GHC.Types.[] Nat) (GHC.Types.[] Nat))- = forall arg. (GHC.Types.~) (KindOf (Apply (InsertSym1 l) arg)) (KindOf (InsertSym2 l arg)) =>+ = forall arg. KindOf (Apply (InsertSym1 l) arg) ~ KindOf (InsertSym2 l arg) => InsertSym1KindInference type instance Apply (InsertSym1 l) l = InsertSym2 l l instance SuppressUnusedWarnings InsertSym0 where@@ -120,7 +120,7 @@ = snd (GHC.Tuple.(,) InsertSym0KindInference GHC.Tuple.()) data InsertSym0 (l :: TyFun Nat (TyFun (GHC.Types.[] Nat) (GHC.Types.[] Nat) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply InsertSym0 arg)) (KindOf (InsertSym1 arg)) =>+ = forall arg. KindOf (Apply InsertSym0 arg) ~ KindOf (InsertSym1 arg) => InsertSym0KindInference type instance Apply InsertSym0 l = InsertSym1 l type InsertionSortSym1 (t :: GHC.Types.[] Nat) = InsertionSort t@@ -128,7 +128,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) InsertionSortSym0KindInference GHC.Tuple.()) data InsertionSortSym0 (l :: TyFun (GHC.Types.[] Nat) (GHC.Types.[] Nat))- = forall arg. (GHC.Types.~) (KindOf (Apply InsertionSortSym0 arg)) (KindOf (InsertionSortSym1 arg)) =>+ = forall arg. KindOf (Apply InsertionSortSym0 arg) ~ KindOf (InsertionSortSym1 arg) => InsertionSortSym0KindInference type instance Apply InsertionSortSym0 l = InsertionSortSym1 l type family Leq (a :: Nat) (a :: Nat) :: Bool where@@ -154,23 +154,21 @@ sLeq SZero _ = let lambda ::- forall wild. ((GHC.Types.~) t ZeroSym0, (GHC.Types.~) t wild) =>+ forall wild. (t ~ ZeroSym0, t ~ wild) => Sing (Apply (Apply LeqSym0 ZeroSym0) wild) lambda = STrue in lambda sLeq (SSucc _) SZero = let lambda ::- forall wild. ((GHC.Types.~) t (Apply SuccSym0 wild),- (GHC.Types.~) t ZeroSym0) =>+ forall wild. (t ~ Apply SuccSym0 wild, t ~ ZeroSym0) => Sing (Apply (Apply LeqSym0 (Apply SuccSym0 wild)) ZeroSym0) lambda = SFalse in lambda sLeq (SSucc sA) (SSucc sB) = let lambda ::- forall a b. ((GHC.Types.~) t (Apply SuccSym0 a),- (GHC.Types.~) t (Apply SuccSym0 b)) =>+ forall a b. (t ~ Apply SuccSym0 a, t ~ Apply SuccSym0 b) => Sing a -> Sing b -> Sing (Apply (Apply LeqSym0 (Apply SuccSym0 a)) (Apply SuccSym0 b))@@ -181,7 +179,7 @@ sInsert sN SNil = let lambda ::- forall n. ((GHC.Types.~) t n, (GHC.Types.~) t GHC.Types.[]) =>+ forall n. (t ~ n, t ~ GHC.Types.[]) => Sing n -> Sing (Apply (Apply InsertSym0 n) GHC.Types.[]) lambda n = applySing@@ -190,8 +188,7 @@ sInsert sN (SCons sH sT) = let lambda ::- forall n h t. ((GHC.Types.~) t n,- (GHC.Types.~) t (Apply (Apply (:$) h) t)) =>+ forall n h t. (t ~ n, t ~ Apply (Apply (:$) h) t) => Sing n -> Sing h -> Sing t@@ -226,14 +223,13 @@ sInsertionSort SNil = let lambda ::- (GHC.Types.~) t GHC.Types.[] =>- Sing (Apply InsertionSortSym0 GHC.Types.[])+ t ~ GHC.Types.[] => Sing (Apply InsertionSortSym0 GHC.Types.[]) lambda = SNil in lambda sInsertionSort (SCons sH sT) = let lambda ::- forall h t. (GHC.Types.~) t (Apply (Apply (:$) h) t) =>+ forall h t. t ~ Apply (Apply (:$) h) t => Sing h -> Sing t -> Sing (Apply InsertionSortSym0 (Apply (Apply (:$) h) t))
tests/compile-and-dump/Promote/BoundedDeriving.ghc78.template view
@@ -52,7 +52,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo3Sym0KindInference GHC.Tuple.()) data Foo3Sym0 (l :: TyFun a (Foo3 a))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply Foo3Sym0 arg)) (Data.Singletons.KindOf (Foo3Sym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply Foo3Sym0 arg) ~ Data.Singletons.KindOf (Foo3Sym1 arg) => Foo3Sym0KindInference type instance Apply Foo3Sym0 l = Foo3Sym1 l instance PBounded (KProxy :: KProxy (Foo4 k k)) where@@ -68,13 +68,13 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) PairSym1KindInference GHC.Tuple.()) data PairSym1 (l :: Bool) (l :: TyFun Bool Pair)- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (PairSym1 l) arg)) (Data.Singletons.KindOf (PairSym2 l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (PairSym1 l) arg) ~ Data.Singletons.KindOf (PairSym2 l arg) => PairSym1KindInference type instance Apply (PairSym1 l) l = PairSym2 l l instance SuppressUnusedWarnings PairSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) PairSym0KindInference GHC.Tuple.()) data PairSym0 (l :: TyFun Bool (TyFun Bool Pair -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply PairSym0 arg)) (Data.Singletons.KindOf (PairSym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply PairSym0 arg) ~ Data.Singletons.KindOf (PairSym1 arg) => PairSym0KindInference type instance Apply PairSym0 l = PairSym1 l
tests/compile-and-dump/Promote/Classes.ghc78.template view
@@ -49,14 +49,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) FooCompareSym1KindInference GHC.Tuple.()) data FooCompareSym1 (l :: Foo) (l :: TyFun Foo Ordering)- = forall arg. (GHC.Types.~) (KindOf (Apply (FooCompareSym1 l) arg)) (KindOf (FooCompareSym2 l arg)) =>+ = forall arg. KindOf (Apply (FooCompareSym1 l) arg) ~ KindOf (FooCompareSym2 l arg) => FooCompareSym1KindInference type instance Apply (FooCompareSym1 l) l = FooCompareSym2 l l instance SuppressUnusedWarnings FooCompareSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) FooCompareSym0KindInference GHC.Tuple.()) data FooCompareSym0 (l :: TyFun Foo (TyFun Foo Ordering -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply FooCompareSym0 arg)) (KindOf (FooCompareSym1 arg)) =>+ = forall arg. KindOf (Apply FooCompareSym0 arg) ~ KindOf (FooCompareSym1 arg) => FooCompareSym0KindInference type instance Apply FooCompareSym0 l = FooCompareSym1 l type ConstSym2 (t :: a) (t :: b) = Const t t@@ -64,14 +64,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) ConstSym1KindInference GHC.Tuple.()) data ConstSym1 (l :: a) (l :: TyFun b a)- = forall arg. (GHC.Types.~) (KindOf (Apply (ConstSym1 l) arg)) (KindOf (ConstSym2 l arg)) =>+ = forall arg. KindOf (Apply (ConstSym1 l) arg) ~ KindOf (ConstSym2 l arg) => ConstSym1KindInference type instance Apply (ConstSym1 l) l = ConstSym2 l l instance SuppressUnusedWarnings ConstSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) ConstSym0KindInference GHC.Tuple.()) data ConstSym0 (l :: TyFun a (TyFun b a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply ConstSym0 arg)) (KindOf (ConstSym1 arg)) =>+ = forall arg. KindOf (Apply ConstSym0 arg) ~ KindOf (ConstSym1 arg) => ConstSym0KindInference type instance Apply ConstSym0 l = ConstSym1 l type family FooCompare (a :: Foo) (a :: Foo) :: Ordering where@@ -85,14 +85,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) MycompareSym1KindInference GHC.Tuple.()) data MycompareSym1 (l :: a) (l :: TyFun a Ordering)- = forall arg. (GHC.Types.~) (KindOf (Apply (MycompareSym1 l) arg)) (KindOf (MycompareSym2 l arg)) =>+ = forall arg. KindOf (Apply (MycompareSym1 l) arg) ~ KindOf (MycompareSym2 l arg) => MycompareSym1KindInference type instance Apply (MycompareSym1 l) l = MycompareSym2 l l instance SuppressUnusedWarnings MycompareSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) MycompareSym0KindInference GHC.Tuple.()) data MycompareSym0 (l :: TyFun a (TyFun a Ordering -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply MycompareSym0 arg)) (KindOf (MycompareSym1 arg)) =>+ = forall arg. KindOf (Apply MycompareSym0 arg) ~ KindOf (MycompareSym1 arg) => MycompareSym0KindInference type instance Apply MycompareSym0 l = MycompareSym1 l type (:<=>$$$) (t :: a) (t :: a) = (:<=>) t t@@ -100,17 +100,17 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:<=>$$###) GHC.Tuple.()) data (:<=>$$) (l :: a) (l :: TyFun a Ordering)- = forall arg. (GHC.Types.~) (KindOf (Apply ((:<=>$$) l) arg)) (KindOf ((:<=>$$$) l arg)) =>+ = forall arg. KindOf (Apply ((:<=>$$) l) arg) ~ KindOf ((:<=>$$$) l arg) => (:<=>$$###) type instance Apply ((:<=>$$) l) l = (:<=>$$$) l l instance SuppressUnusedWarnings (:<=>$) where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:<=>$###) GHC.Tuple.()) data (:<=>$) (l :: TyFun a (TyFun a Ordering -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (:<=>$) arg)) (KindOf ((:<=>$$) arg)) =>+ = forall arg. KindOf (Apply (:<=>$) arg) ~ KindOf ((:<=>$$) arg) => (:<=>$###) type instance Apply (:<=>$) l = (:<=>$$) l- class (GHC.Types.~) kproxy KProxy => PMyOrd (kproxy :: KProxy a) where+ class kproxy ~ KProxy => PMyOrd (kproxy :: KProxy a) where type family Mycompare (arg :: a) (arg :: a) :: Ordering type family (:<=>) (arg :: a) (arg :: a) :: Ordering type instance (:<=>) (a_0123456789 :: a) (a_0123456789 :: a) = (Apply (Apply MycompareSym0 a_0123456789) a_0123456789 :: Ordering)@@ -153,6 +153,6 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Succ'Sym0KindInference GHC.Tuple.()) data Succ'Sym0 (l :: TyFun Nat' Nat')- = forall arg. (GHC.Types.~) (KindOf (Apply Succ'Sym0 arg)) (KindOf (Succ'Sym1 arg)) =>+ = forall arg. KindOf (Apply Succ'Sym0 arg) ~ KindOf (Succ'Sym1 arg) => Succ'Sym0KindInference type instance Apply Succ'Sym0 l = Succ'Sym1 l
tests/compile-and-dump/Promote/Constructors.ghc78.template view
@@ -12,14 +12,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:+$$###) GHC.Tuple.()) data (:+$$) (l :: Foo) (l :: TyFun Foo Foo)- = forall arg. (GHC.Types.~) (KindOf (Apply ((:+$$) l) arg)) (KindOf ((:+$$$) l arg)) =>+ = forall arg. KindOf (Apply ((:+$$) l) arg) ~ KindOf ((:+$$$) l arg) => (:+$$###) type instance Apply ((:+$$) l) l = (:+$$$) l l instance SuppressUnusedWarnings (:+$) where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:+$###) GHC.Tuple.()) data (:+$) (l :: TyFun Foo (TyFun Foo Foo -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (:+$) arg)) (KindOf ((:+$$) arg)) =>+ = forall arg. KindOf (Apply (:+$) arg) ~ KindOf ((:+$$) arg) => (:+$###) type instance Apply (:+$) l = (:+$$) l type BarSym5 (t :: Bar)@@ -36,7 +36,7 @@ (l :: Bar) (l :: Bar) (l :: TyFun Foo Bar)- = forall arg. (GHC.Types.~) (KindOf (Apply (BarSym4 l l l l) arg)) (KindOf (BarSym5 l l l l arg)) =>+ = forall arg. KindOf (Apply (BarSym4 l l l l) arg) ~ KindOf (BarSym5 l l l l arg) => BarSym4KindInference type instance Apply (BarSym4 l l l l) l = BarSym5 l l l l l instance SuppressUnusedWarnings BarSym3 where@@ -46,7 +46,7 @@ (l :: Bar) (l :: Bar) (l :: TyFun Bar (TyFun Foo Bar -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (BarSym3 l l l) arg)) (KindOf (BarSym4 l l l arg)) =>+ = forall arg. KindOf (Apply (BarSym3 l l l) arg) ~ KindOf (BarSym4 l l l arg) => BarSym3KindInference type instance Apply (BarSym3 l l l) l = BarSym4 l l l l instance SuppressUnusedWarnings BarSym2 where@@ -55,7 +55,7 @@ data BarSym2 (l :: Bar) (l :: Bar) (l :: TyFun Bar (TyFun Bar (TyFun Foo Bar -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (BarSym2 l l) arg)) (KindOf (BarSym3 l l arg)) =>+ = forall arg. KindOf (Apply (BarSym2 l l) arg) ~ KindOf (BarSym3 l l arg) => BarSym2KindInference type instance Apply (BarSym2 l l) l = BarSym3 l l l instance SuppressUnusedWarnings BarSym1 where@@ -64,7 +64,7 @@ data BarSym1 (l :: Bar) (l :: TyFun Bar (TyFun Bar (TyFun Bar (TyFun Foo Bar -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (BarSym1 l) arg)) (KindOf (BarSym2 l arg)) =>+ = forall arg. KindOf (Apply (BarSym1 l) arg) ~ KindOf (BarSym2 l arg) => BarSym1KindInference type instance Apply (BarSym1 l) l = BarSym2 l l instance SuppressUnusedWarnings BarSym0 where@@ -75,6 +75,6 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply BarSym0 arg)) (KindOf (BarSym1 arg)) =>+ = forall arg. KindOf (Apply BarSym0 arg) ~ KindOf (BarSym1 arg) => BarSym0KindInference type instance Apply BarSym0 l = BarSym1 l
tests/compile-and-dump/Promote/GenDefunSymbols.ghc78.template view
@@ -9,7 +9,7 @@ = snd (GHC.Tuple.(,) LiftMaybeSym1KindInference GHC.Tuple.()) data LiftMaybeSym1 (l :: TyFun a b -> *) (l :: TyFun (Maybe a) (Maybe b))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (LiftMaybeSym1 l) arg)) (Data.Singletons.KindOf (LiftMaybeSym2 l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (LiftMaybeSym1 l) arg) ~ Data.Singletons.KindOf (LiftMaybeSym2 l arg) => LiftMaybeSym1KindInference type instance Apply (LiftMaybeSym1 l) l = LiftMaybeSym2 l l instance SuppressUnusedWarnings LiftMaybeSym0 where@@ -17,7 +17,7 @@ = snd (GHC.Tuple.(,) LiftMaybeSym0KindInference GHC.Tuple.()) data LiftMaybeSym0 (l :: TyFun (TyFun a b -> *) (TyFun (Maybe a) (Maybe b) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply LiftMaybeSym0 arg)) (Data.Singletons.KindOf (LiftMaybeSym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply LiftMaybeSym0 arg) ~ Data.Singletons.KindOf (LiftMaybeSym1 arg) => LiftMaybeSym0KindInference type instance Apply LiftMaybeSym0 l = LiftMaybeSym1 l type ZeroSym0 = Zero@@ -26,7 +26,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) SuccSym0KindInference GHC.Tuple.()) data SuccSym0 (l :: TyFun NatT NatT)- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply SuccSym0 arg)) (Data.Singletons.KindOf (SuccSym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply SuccSym0 arg) ~ Data.Singletons.KindOf (SuccSym1 arg) => SuccSym0KindInference type instance Apply SuccSym0 l = SuccSym1 l type (:+$$$) (t :: Nat) (t :: Nat) = (:+) t t@@ -34,13 +34,13 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:+$$###) GHC.Tuple.()) data (:+$$) (l :: Nat) l- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply ((:+$$) l) arg)) (Data.Singletons.KindOf ((:+$$$) l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply ((:+$$) l) arg) ~ Data.Singletons.KindOf ((:+$$$) l arg) => (:+$$###) type instance Apply ((:+$$) l) l = (:+$$$) l l instance SuppressUnusedWarnings (:+$) where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:+$###) GHC.Tuple.()) data (:+$) l- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (:+$) arg)) (Data.Singletons.KindOf ((:+$$) arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (:+$) arg) ~ Data.Singletons.KindOf ((:+$$) arg) => (:+$###) type instance Apply (:+$) l = (:+$$) l
tests/compile-and-dump/Promote/Newtypes.ghc78.template view
@@ -15,7 +15,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) UnBarSym0KindInference GHC.Tuple.()) data UnBarSym0 (l :: TyFun Bar Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply UnBarSym0 arg)) (KindOf (UnBarSym1 arg)) =>+ = forall arg. KindOf (Apply UnBarSym0 arg) ~ KindOf (UnBarSym1 arg) => UnBarSym0KindInference type instance Apply UnBarSym0 l = UnBarSym1 l type family UnBar (a :: Bar) :: Nat where@@ -30,7 +30,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) FooSym0KindInference GHC.Tuple.()) data FooSym0 (l :: TyFun Nat Foo)- = forall arg. (GHC.Types.~) (KindOf (Apply FooSym0 arg)) (KindOf (FooSym1 arg)) =>+ = forall arg. KindOf (Apply FooSym0 arg) ~ KindOf (FooSym1 arg) => FooSym0KindInference type instance Apply FooSym0 l = FooSym1 l type BarSym1 (t :: Nat) = Bar t@@ -38,6 +38,6 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) BarSym0KindInference GHC.Tuple.()) data BarSym0 (l :: TyFun Nat Bar)- = forall arg. (GHC.Types.~) (KindOf (Apply BarSym0 arg)) (KindOf (BarSym1 arg)) =>+ = forall arg. KindOf (Apply BarSym0 arg) ~ KindOf (BarSym1 arg) => BarSym0KindInference type instance Apply BarSym0 l = BarSym1 l
tests/compile-and-dump/Promote/OrdDeriving.ghc78.template view
@@ -41,7 +41,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) SuccSym0KindInference GHC.Tuple.()) data SuccSym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply SuccSym0 arg)) (Data.Singletons.KindOf (SuccSym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply SuccSym0 arg) ~ Data.Singletons.KindOf (SuccSym1 arg) => SuccSym0KindInference type instance Apply SuccSym0 l = SuccSym1 l type family Equals_0123456789 (a :: Foo k k k k)@@ -97,7 +97,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) ASym3KindInference GHC.Tuple.()) data ASym3 (l :: a) (l :: b) (l :: c) (l :: TyFun d (Foo a b c d))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (ASym3 l l l) arg)) (Data.Singletons.KindOf (ASym4 l l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (ASym3 l l l) arg) ~ Data.Singletons.KindOf (ASym4 l l l arg) => ASym3KindInference type instance Apply (ASym3 l l l) l = ASym4 l l l l instance SuppressUnusedWarnings ASym2 where@@ -106,7 +106,7 @@ data ASym2 (l :: a) (l :: b) (l :: TyFun c (TyFun d (Foo a b c d) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (ASym2 l l) arg)) (Data.Singletons.KindOf (ASym3 l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (ASym2 l l) arg) ~ Data.Singletons.KindOf (ASym3 l l arg) => ASym2KindInference type instance Apply (ASym2 l l) l = ASym3 l l l instance SuppressUnusedWarnings ASym1 where@@ -114,7 +114,7 @@ = snd (GHC.Tuple.(,) ASym1KindInference GHC.Tuple.()) data ASym1 (l :: a) (l :: TyFun b (TyFun c (TyFun d (Foo a b c d) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (ASym1 l) arg)) (Data.Singletons.KindOf (ASym2 l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (ASym1 l) arg) ~ Data.Singletons.KindOf (ASym2 l arg) => ASym1KindInference type instance Apply (ASym1 l) l = ASym2 l l instance SuppressUnusedWarnings ASym0 where@@ -124,7 +124,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply ASym0 arg)) (Data.Singletons.KindOf (ASym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply ASym0 arg) ~ Data.Singletons.KindOf (ASym1 arg) => ASym0KindInference type instance Apply ASym0 l = ASym1 l type BSym4 (t :: a) (t :: b) (t :: c) (t :: d) = B t t t t@@ -132,7 +132,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) BSym3KindInference GHC.Tuple.()) data BSym3 (l :: a) (l :: b) (l :: c) (l :: TyFun d (Foo a b c d))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (BSym3 l l l) arg)) (Data.Singletons.KindOf (BSym4 l l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (BSym3 l l l) arg) ~ Data.Singletons.KindOf (BSym4 l l l arg) => BSym3KindInference type instance Apply (BSym3 l l l) l = BSym4 l l l l instance SuppressUnusedWarnings BSym2 where@@ -141,7 +141,7 @@ data BSym2 (l :: a) (l :: b) (l :: TyFun c (TyFun d (Foo a b c d) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (BSym2 l l) arg)) (Data.Singletons.KindOf (BSym3 l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (BSym2 l l) arg) ~ Data.Singletons.KindOf (BSym3 l l arg) => BSym2KindInference type instance Apply (BSym2 l l) l = BSym3 l l l instance SuppressUnusedWarnings BSym1 where@@ -149,7 +149,7 @@ = snd (GHC.Tuple.(,) BSym1KindInference GHC.Tuple.()) data BSym1 (l :: a) (l :: TyFun b (TyFun c (TyFun d (Foo a b c d) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (BSym1 l) arg)) (Data.Singletons.KindOf (BSym2 l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (BSym1 l) arg) ~ Data.Singletons.KindOf (BSym2 l arg) => BSym1KindInference type instance Apply (BSym1 l) l = BSym2 l l instance SuppressUnusedWarnings BSym0 where@@ -159,7 +159,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply BSym0 arg)) (Data.Singletons.KindOf (BSym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply BSym0 arg) ~ Data.Singletons.KindOf (BSym1 arg) => BSym0KindInference type instance Apply BSym0 l = BSym1 l type CSym4 (t :: a) (t :: b) (t :: c) (t :: d) = C t t t t@@ -167,7 +167,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) CSym3KindInference GHC.Tuple.()) data CSym3 (l :: a) (l :: b) (l :: c) (l :: TyFun d (Foo a b c d))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (CSym3 l l l) arg)) (Data.Singletons.KindOf (CSym4 l l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (CSym3 l l l) arg) ~ Data.Singletons.KindOf (CSym4 l l l arg) => CSym3KindInference type instance Apply (CSym3 l l l) l = CSym4 l l l l instance SuppressUnusedWarnings CSym2 where@@ -176,7 +176,7 @@ data CSym2 (l :: a) (l :: b) (l :: TyFun c (TyFun d (Foo a b c d) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (CSym2 l l) arg)) (Data.Singletons.KindOf (CSym3 l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (CSym2 l l) arg) ~ Data.Singletons.KindOf (CSym3 l l arg) => CSym2KindInference type instance Apply (CSym2 l l) l = CSym3 l l l instance SuppressUnusedWarnings CSym1 where@@ -184,7 +184,7 @@ = snd (GHC.Tuple.(,) CSym1KindInference GHC.Tuple.()) data CSym1 (l :: a) (l :: TyFun b (TyFun c (TyFun d (Foo a b c d) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (CSym1 l) arg)) (Data.Singletons.KindOf (CSym2 l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (CSym1 l) arg) ~ Data.Singletons.KindOf (CSym2 l arg) => CSym1KindInference type instance Apply (CSym1 l) l = CSym2 l l instance SuppressUnusedWarnings CSym0 where@@ -194,7 +194,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply CSym0 arg)) (Data.Singletons.KindOf (CSym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply CSym0 arg) ~ Data.Singletons.KindOf (CSym1 arg) => CSym0KindInference type instance Apply CSym0 l = CSym1 l type DSym4 (t :: a) (t :: b) (t :: c) (t :: d) = D t t t t@@ -202,7 +202,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) DSym3KindInference GHC.Tuple.()) data DSym3 (l :: a) (l :: b) (l :: c) (l :: TyFun d (Foo a b c d))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (DSym3 l l l) arg)) (Data.Singletons.KindOf (DSym4 l l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (DSym3 l l l) arg) ~ Data.Singletons.KindOf (DSym4 l l l arg) => DSym3KindInference type instance Apply (DSym3 l l l) l = DSym4 l l l l instance SuppressUnusedWarnings DSym2 where@@ -211,7 +211,7 @@ data DSym2 (l :: a) (l :: b) (l :: TyFun c (TyFun d (Foo a b c d) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (DSym2 l l) arg)) (Data.Singletons.KindOf (DSym3 l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (DSym2 l l) arg) ~ Data.Singletons.KindOf (DSym3 l l arg) => DSym2KindInference type instance Apply (DSym2 l l) l = DSym3 l l l instance SuppressUnusedWarnings DSym1 where@@ -219,7 +219,7 @@ = snd (GHC.Tuple.(,) DSym1KindInference GHC.Tuple.()) data DSym1 (l :: a) (l :: TyFun b (TyFun c (TyFun d (Foo a b c d) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (DSym1 l) arg)) (Data.Singletons.KindOf (DSym2 l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (DSym1 l) arg) ~ Data.Singletons.KindOf (DSym2 l arg) => DSym1KindInference type instance Apply (DSym1 l) l = DSym2 l l instance SuppressUnusedWarnings DSym0 where@@ -229,7 +229,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply DSym0 arg)) (Data.Singletons.KindOf (DSym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply DSym0 arg) ~ Data.Singletons.KindOf (DSym1 arg) => DSym0KindInference type instance Apply DSym0 l = DSym1 l type ESym4 (t :: a) (t :: b) (t :: c) (t :: d) = E t t t t@@ -237,7 +237,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) ESym3KindInference GHC.Tuple.()) data ESym3 (l :: a) (l :: b) (l :: c) (l :: TyFun d (Foo a b c d))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (ESym3 l l l) arg)) (Data.Singletons.KindOf (ESym4 l l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (ESym3 l l l) arg) ~ Data.Singletons.KindOf (ESym4 l l l arg) => ESym3KindInference type instance Apply (ESym3 l l l) l = ESym4 l l l l instance SuppressUnusedWarnings ESym2 where@@ -246,7 +246,7 @@ data ESym2 (l :: a) (l :: b) (l :: TyFun c (TyFun d (Foo a b c d) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (ESym2 l l) arg)) (Data.Singletons.KindOf (ESym3 l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (ESym2 l l) arg) ~ Data.Singletons.KindOf (ESym3 l l arg) => ESym2KindInference type instance Apply (ESym2 l l) l = ESym3 l l l instance SuppressUnusedWarnings ESym1 where@@ -254,7 +254,7 @@ = snd (GHC.Tuple.(,) ESym1KindInference GHC.Tuple.()) data ESym1 (l :: a) (l :: TyFun b (TyFun c (TyFun d (Foo a b c d) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (ESym1 l) arg)) (Data.Singletons.KindOf (ESym2 l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (ESym1 l) arg) ~ Data.Singletons.KindOf (ESym2 l arg) => ESym1KindInference type instance Apply (ESym1 l) l = ESym2 l l instance SuppressUnusedWarnings ESym0 where@@ -264,7 +264,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply ESym0 arg)) (Data.Singletons.KindOf (ESym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply ESym0 arg) ~ Data.Singletons.KindOf (ESym1 arg) => ESym0KindInference type instance Apply ESym0 l = ESym1 l type FSym4 (t :: a) (t :: b) (t :: c) (t :: d) = F t t t t@@ -272,7 +272,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) FSym3KindInference GHC.Tuple.()) data FSym3 (l :: a) (l :: b) (l :: c) (l :: TyFun d (Foo a b c d))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (FSym3 l l l) arg)) (Data.Singletons.KindOf (FSym4 l l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (FSym3 l l l) arg) ~ Data.Singletons.KindOf (FSym4 l l l arg) => FSym3KindInference type instance Apply (FSym3 l l l) l = FSym4 l l l l instance SuppressUnusedWarnings FSym2 where@@ -281,7 +281,7 @@ data FSym2 (l :: a) (l :: b) (l :: TyFun c (TyFun d (Foo a b c d) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (FSym2 l l) arg)) (Data.Singletons.KindOf (FSym3 l l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (FSym2 l l) arg) ~ Data.Singletons.KindOf (FSym3 l l arg) => FSym2KindInference type instance Apply (FSym2 l l) l = FSym3 l l l instance SuppressUnusedWarnings FSym1 where@@ -289,7 +289,7 @@ = snd (GHC.Tuple.(,) FSym1KindInference GHC.Tuple.()) data FSym1 (l :: a) (l :: TyFun b (TyFun c (TyFun d (Foo a b c d) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply (FSym1 l) arg)) (Data.Singletons.KindOf (FSym2 l arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply (FSym1 l) arg) ~ Data.Singletons.KindOf (FSym2 l arg) => FSym1KindInference type instance Apply (FSym1 l) l = FSym2 l l instance SuppressUnusedWarnings FSym0 where@@ -299,6 +299,6 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply FSym0 arg)) (Data.Singletons.KindOf (FSym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply FSym0 arg) ~ Data.Singletons.KindOf (FSym1 arg) => FSym0KindInference type instance Apply FSym0 l = FSym1 l
tests/compile-and-dump/Promote/Prelude.ghc78.template view
@@ -10,7 +10,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) OddSym0KindInference GHC.Tuple.()) data OddSym0 (l :: TyFun Nat Bool)- = forall arg. (GHC.Types.~) (Data.Singletons.KindOf (Apply OddSym0 arg)) (Data.Singletons.KindOf (OddSym1 arg)) =>+ = forall arg. Data.Singletons.KindOf (Apply OddSym0 arg) ~ Data.Singletons.KindOf (OddSym1 arg) => OddSym0KindInference type instance Apply OddSym0 l = OddSym1 l type family Odd (a :: Nat) :: Bool where
tests/compile-and-dump/Promote/TopLevelPatterns.ghc78.template view
@@ -58,7 +58,7 @@ suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) NotSym0KindInference GHC.Tuple.()) data NotSym0 (l :: TyFun Bool Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply NotSym0 arg)) (KindOf (NotSym1 arg)) =>+ = forall arg. KindOf (Apply NotSym0 arg) ~ KindOf (NotSym1 arg) => NotSym0KindInference type instance Apply NotSym0 l = NotSym1 l type IdSym1 (t :: a) = Id t@@ -66,7 +66,7 @@ suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) IdSym0KindInference GHC.Tuple.()) data IdSym0 (l :: TyFun a a)- = forall arg. (GHC.Types.~) (KindOf (Apply IdSym0 arg)) (KindOf (IdSym1 arg)) =>+ = forall arg. KindOf (Apply IdSym0 arg) ~ KindOf (IdSym1 arg) => IdSym0KindInference type instance Apply IdSym0 l = IdSym1 l type FSym1 (t :: Bool) = F t@@ -74,7 +74,7 @@ suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) FSym0KindInference GHC.Tuple.()) data FSym0 (l :: TyFun Bool Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply FSym0 arg)) (KindOf (FSym1 arg)) =>+ = forall arg. KindOf (Apply FSym0 arg) ~ KindOf (FSym1 arg) => FSym0KindInference type instance Apply FSym0 l = FSym1 l type GSym1 (t :: Bool) = G t@@ -82,7 +82,7 @@ suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) GSym0KindInference GHC.Tuple.()) data GSym0 (l :: TyFun Bool Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply GSym0 arg)) (KindOf (GSym1 arg)) =>+ = forall arg. KindOf (Apply GSym0 arg) ~ KindOf (GSym1 arg) => GSym0KindInference type instance Apply GSym0 l = GSym1 l type HSym1 (t :: Bool) = H t@@ -90,7 +90,7 @@ suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) HSym0KindInference GHC.Tuple.()) data HSym0 (l :: TyFun Bool Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply HSym0 arg)) (KindOf (HSym1 arg)) =>+ = forall arg. KindOf (Apply HSym0 arg) ~ KindOf (HSym1 arg) => HSym0KindInference type instance Apply HSym0 l = HSym1 l type ISym1 (t :: Bool) = I t@@ -98,7 +98,7 @@ suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) ISym0KindInference GHC.Tuple.()) data ISym0 (l :: TyFun Bool Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply ISym0 arg)) (KindOf (ISym1 arg)) =>+ = forall arg. KindOf (Apply ISym0 arg) ~ KindOf (ISym1 arg) => ISym0KindInference type instance Apply ISym0 l = ISym1 l type JSym0 = J@@ -140,13 +140,13 @@ suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) BarSym1KindInference GHC.Tuple.()) data BarSym1 (l :: Bool) (l :: TyFun Bool Foo)- = forall arg. (GHC.Types.~) (KindOf (Apply (BarSym1 l) arg)) (KindOf (BarSym2 l arg)) =>+ = forall arg. KindOf (Apply (BarSym1 l) arg) ~ KindOf (BarSym2 l arg) => BarSym1KindInference type instance Apply (BarSym1 l) l = BarSym2 l l instance SuppressUnusedWarnings BarSym0 where suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) BarSym0KindInference GHC.Tuple.()) data BarSym0 (l :: TyFun Bool (TyFun Bool Foo -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply BarSym0 arg)) (KindOf (BarSym1 arg)) =>+ = forall arg. KindOf (Apply BarSym0 arg) ~ KindOf (BarSym1 arg) => BarSym0KindInference type instance Apply BarSym0 l = BarSym1 l
tests/compile-and-dump/Singletons/AsPattern.ghc78.template view
@@ -15,7 +15,7 @@ foo p@[] = p foo p@[_] = p foo p@(_ : _) = p-+ data Baz = Baz Nat Nat Nat |] ======> Singletons/AsPattern.hs:(0,0)-(0,0)@@ -40,21 +40,21 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) BazSym2KindInference GHC.Tuple.()) data BazSym2 (l :: Nat) (l :: Nat) (l :: TyFun Nat Baz)- = forall arg. (GHC.Types.~) (KindOf (Apply (BazSym2 l l) arg)) (KindOf (BazSym3 l l arg)) =>+ = forall arg. KindOf (Apply (BazSym2 l l) arg) ~ KindOf (BazSym3 l l arg) => BazSym2KindInference type instance Apply (BazSym2 l l) l = BazSym3 l l l instance SuppressUnusedWarnings BazSym1 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) BazSym1KindInference GHC.Tuple.()) data BazSym1 (l :: Nat) (l :: TyFun Nat (TyFun Nat Baz -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (BazSym1 l) arg)) (KindOf (BazSym2 l arg)) =>+ = forall arg. KindOf (Apply (BazSym1 l) arg) ~ KindOf (BazSym2 l arg) => BazSym1KindInference type instance Apply (BazSym1 l) l = BazSym2 l l instance SuppressUnusedWarnings BazSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) BazSym0KindInference GHC.Tuple.()) data BazSym0 (l :: TyFun Nat (TyFun Nat (TyFun Nat Baz -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply BazSym0 arg)) (KindOf (BazSym1 arg)) =>+ = forall arg. KindOf (Apply BazSym0 arg) ~ KindOf (BazSym1 arg) => BazSym0KindInference type instance Apply BazSym0 l = BazSym1 l type Let_0123456789PSym0 = Let_0123456789P@@ -64,7 +64,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789PSym0KindInference GHC.Tuple.()) data Let_0123456789PSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789PSym0 arg)) (KindOf (Let_0123456789PSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789PSym0 arg) ~ KindOf (Let_0123456789PSym1 arg) => Let_0123456789PSym0KindInference type instance Apply Let_0123456789PSym0 l = Let_0123456789PSym1 l type Let_0123456789P wild_0123456789 =@@ -74,14 +74,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789PSym1KindInference GHC.Tuple.()) data Let_0123456789PSym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789PSym1 l) arg)) (KindOf (Let_0123456789PSym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789PSym1 l) arg) ~ KindOf (Let_0123456789PSym2 l arg) => Let_0123456789PSym1KindInference type instance Apply (Let_0123456789PSym1 l) l = Let_0123456789PSym2 l l instance SuppressUnusedWarnings Let_0123456789PSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789PSym0KindInference GHC.Tuple.()) data Let_0123456789PSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789PSym0 arg)) (KindOf (Let_0123456789PSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789PSym0 arg) ~ KindOf (Let_0123456789PSym1 arg) => Let_0123456789PSym0KindInference type instance Apply Let_0123456789PSym0 l = Let_0123456789PSym1 l type Let_0123456789P wild_0123456789 wild_0123456789 =@@ -91,14 +91,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789PSym1KindInference GHC.Tuple.()) data Let_0123456789PSym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789PSym1 l) arg)) (KindOf (Let_0123456789PSym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789PSym1 l) arg) ~ KindOf (Let_0123456789PSym2 l arg) => Let_0123456789PSym1KindInference type instance Apply (Let_0123456789PSym1 l) l = Let_0123456789PSym2 l l instance SuppressUnusedWarnings Let_0123456789PSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789PSym0KindInference GHC.Tuple.()) data Let_0123456789PSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789PSym0 arg)) (KindOf (Let_0123456789PSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789PSym0 arg) ~ KindOf (Let_0123456789PSym1 arg) => Let_0123456789PSym0KindInference type instance Apply Let_0123456789PSym0 l = Let_0123456789PSym1 l type Let_0123456789P wild_0123456789 wild_0123456789 =@@ -110,21 +110,21 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789PSym2KindInference GHC.Tuple.()) data Let_0123456789PSym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789PSym2 l l) arg)) (KindOf (Let_0123456789PSym3 l l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789PSym2 l l) arg) ~ KindOf (Let_0123456789PSym3 l l arg) => Let_0123456789PSym2KindInference type instance Apply (Let_0123456789PSym2 l l) l = Let_0123456789PSym3 l l l instance SuppressUnusedWarnings Let_0123456789PSym1 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789PSym1KindInference GHC.Tuple.()) data Let_0123456789PSym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789PSym1 l) arg)) (KindOf (Let_0123456789PSym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789PSym1 l) arg) ~ KindOf (Let_0123456789PSym2 l arg) => Let_0123456789PSym1KindInference type instance Apply (Let_0123456789PSym1 l) l = Let_0123456789PSym2 l l instance SuppressUnusedWarnings Let_0123456789PSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789PSym0KindInference GHC.Tuple.()) data Let_0123456789PSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789PSym0 arg)) (KindOf (Let_0123456789PSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789PSym0 arg) ~ KindOf (Let_0123456789PSym1 arg) => Let_0123456789PSym0KindInference type instance Apply Let_0123456789PSym0 l = Let_0123456789PSym1 l type Let_0123456789P wild_0123456789@@ -136,7 +136,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789XSym0KindInference GHC.Tuple.()) data Let_0123456789XSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789XSym0 arg)) (KindOf (Let_0123456789XSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789XSym0 arg) ~ KindOf (Let_0123456789XSym1 arg) => Let_0123456789XSym0KindInference type instance Apply Let_0123456789XSym0 l = Let_0123456789XSym1 l type Let_0123456789X wild_0123456789 =@@ -148,7 +148,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) FooSym0KindInference GHC.Tuple.()) data FooSym0 (l :: TyFun (GHC.Types.[] Nat) (GHC.Types.[] Nat))- = forall arg. (GHC.Types.~) (KindOf (Apply FooSym0 arg)) (KindOf (FooSym1 arg)) =>+ = forall arg. KindOf (Apply FooSym0 arg) ~ KindOf (FooSym1 arg) => FooSym0KindInference type instance Apply FooSym0 l = FooSym1 l type TupSym1 (t :: GHC.Tuple.(,) Nat Nat) = Tup t@@ -156,7 +156,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) TupSym0KindInference GHC.Tuple.()) data TupSym0 (l :: TyFun (GHC.Tuple.(,) Nat Nat) (GHC.Tuple.(,) Nat Nat))- = forall arg. (GHC.Types.~) (KindOf (Apply TupSym0 arg)) (KindOf (TupSym1 arg)) =>+ = forall arg. KindOf (Apply TupSym0 arg) ~ KindOf (TupSym1 arg) => TupSym0KindInference type instance Apply TupSym0 l = TupSym1 l type Baz_Sym1 (t :: Maybe Baz) = Baz_ t@@ -164,7 +164,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Baz_Sym0KindInference GHC.Tuple.()) data Baz_Sym0 (l :: TyFun (Maybe Baz) (Maybe Baz))- = forall arg. (GHC.Types.~) (KindOf (Apply Baz_Sym0 arg)) (KindOf (Baz_Sym1 arg)) =>+ = forall arg. KindOf (Apply Baz_Sym0 arg) ~ KindOf (Baz_Sym1 arg) => Baz_Sym0KindInference type instance Apply Baz_Sym0 l = Baz_Sym1 l type BarSym1 (t :: Maybe Nat) = Bar t@@ -172,7 +172,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) BarSym0KindInference GHC.Tuple.()) data BarSym0 (l :: TyFun (Maybe Nat) (Maybe Nat))- = forall arg. (GHC.Types.~) (KindOf (Apply BarSym0 arg)) (KindOf (BarSym1 arg)) =>+ = forall arg. KindOf (Apply BarSym0 arg) ~ KindOf (BarSym1 arg) => BarSym0KindInference type instance Apply BarSym0 l = BarSym1 l type MaybePlusSym1 (t :: Maybe Nat) = MaybePlus t@@ -180,7 +180,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) MaybePlusSym0KindInference GHC.Tuple.()) data MaybePlusSym0 (l :: TyFun (Maybe Nat) (Maybe Nat))- = forall arg. (GHC.Types.~) (KindOf (Apply MaybePlusSym0 arg)) (KindOf (MaybePlusSym1 arg)) =>+ = forall arg. KindOf (Apply MaybePlusSym0 arg) ~ KindOf (MaybePlusSym1 arg) => MaybePlusSym0KindInference type instance Apply MaybePlusSym0 l = MaybePlusSym1 l type family Foo (a :: GHC.Types.[] Nat) :: GHC.Types.[] Nat where@@ -209,8 +209,7 @@ forall (t :: Maybe Nat). Sing t -> Sing (Apply MaybePlusSym0 t) sFoo SNil = let- lambda ::- (GHC.Types.~) t GHC.Types.[] => Sing (Apply FooSym0 GHC.Types.[])+ lambda :: t ~ GHC.Types.[] => Sing (Apply FooSym0 GHC.Types.[]) lambda = let sP :: Sing Let_0123456789PSym0@@ -220,7 +219,7 @@ sFoo (SCons sWild_0123456789 SNil) = let lambda ::- forall wild_0123456789. (GHC.Types.~) t (Apply (Apply (:$) wild_0123456789) GHC.Types.[]) =>+ forall wild_0123456789. t ~ Apply (Apply (:$) wild_0123456789) GHC.Types.[] => Sing wild_0123456789 -> Sing (Apply FooSym0 (Apply (Apply (:$) wild_0123456789) GHC.Types.[])) lambda wild_0123456789@@ -236,7 +235,7 @@ = let lambda :: forall wild_0123456789- wild_0123456789. (GHC.Types.~) t (Apply (Apply (:$) wild_0123456789) wild_0123456789) =>+ wild_0123456789. t ~ Apply (Apply (:$) wild_0123456789) wild_0123456789 => Sing wild_0123456789 -> Sing wild_0123456789 -> Sing (Apply FooSym0 (Apply (Apply (:$) wild_0123456789) wild_0123456789))@@ -253,7 +252,7 @@ = let lambda :: forall wild_0123456789- wild_0123456789. (GHC.Types.~) t (Apply (Apply Tuple2Sym0 wild_0123456789) wild_0123456789) =>+ wild_0123456789. t ~ Apply (Apply Tuple2Sym0 wild_0123456789) wild_0123456789 => Sing wild_0123456789 -> Sing wild_0123456789 -> Sing (Apply TupSym0 (Apply (Apply Tuple2Sym0 wild_0123456789) wild_0123456789))@@ -269,8 +268,7 @@ in lambda sWild_0123456789 sWild_0123456789 sBaz_ SNothing = let- lambda ::- (GHC.Types.~) t NothingSym0 => Sing (Apply Baz_Sym0 NothingSym0)+ lambda :: t ~ NothingSym0 => Sing (Apply Baz_Sym0 NothingSym0) lambda = let sP :: Sing Let_0123456789PSym0@@ -283,7 +281,7 @@ lambda :: forall wild_0123456789 wild_0123456789- wild_0123456789. (GHC.Types.~) t (Apply JustSym0 (Apply (Apply (Apply BazSym0 wild_0123456789) wild_0123456789) wild_0123456789)) =>+ wild_0123456789. t ~ Apply JustSym0 (Apply (Apply (Apply BazSym0 wild_0123456789) wild_0123456789) wild_0123456789) => Sing wild_0123456789 -> Sing wild_0123456789 -> Sing wild_0123456789@@ -306,7 +304,7 @@ sBar (SJust sWild_0123456789) = let lambda ::- forall wild_0123456789. (GHC.Types.~) t (Apply JustSym0 wild_0123456789) =>+ forall wild_0123456789. t ~ Apply JustSym0 wild_0123456789 => Sing wild_0123456789 -> Sing (Apply BarSym0 (Apply JustSym0 wild_0123456789)) lambda wild_0123456789@@ -319,14 +317,13 @@ in lambda sWild_0123456789 sBar SNothing = let- lambda ::- (GHC.Types.~) t NothingSym0 => Sing (Apply BarSym0 NothingSym0)+ lambda :: t ~ NothingSym0 => Sing (Apply BarSym0 NothingSym0) lambda = SNothing in lambda sMaybePlus (SJust sN) = let lambda ::- forall n. (GHC.Types.~) t (Apply JustSym0 n) =>+ forall n. t ~ Apply JustSym0 n => Sing n -> Sing (Apply MaybePlusSym0 (Apply JustSym0 n)) lambda n = applySing@@ -339,9 +336,7 @@ in lambda sN sMaybePlus SNothing = let- lambda ::- (GHC.Types.~) t NothingSym0 =>- Sing (Apply MaybePlusSym0 NothingSym0)+ lambda :: t ~ NothingSym0 => Sing (Apply MaybePlusSym0 NothingSym0) lambda = let sP :: Sing Let_0123456789PSym0@@ -349,9 +344,7 @@ in sP in lambda data instance Sing (z :: Baz)- = forall (n :: Nat)- (n :: Nat)- (n :: Nat). (GHC.Types.~) z (Baz n n n) =>+ = forall (n :: Nat) (n :: Nat) (n :: Nat). z ~ Baz n n n => SBaz (Sing n) (Sing n) (Sing n) type SBaz (z :: Baz) = Sing z instance SingKind (KProxy :: KProxy Baz) where
tests/compile-and-dump/Singletons/BoxUnBox.ghc78.template view
@@ -14,7 +14,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) FBoxSym0KindInference GHC.Tuple.()) data FBoxSym0 (l :: TyFun a (Box a))- = forall arg. (GHC.Types.~) (KindOf (Apply FBoxSym0 arg)) (KindOf (FBoxSym1 arg)) =>+ = forall arg. KindOf (Apply FBoxSym0 arg) ~ KindOf (FBoxSym1 arg) => FBoxSym0KindInference type instance Apply FBoxSym0 l = FBoxSym1 l type UnBoxSym1 (t :: Box a) = UnBox t@@ -22,7 +22,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) UnBoxSym0KindInference GHC.Tuple.()) data UnBoxSym0 (l :: TyFun (Box a) a)- = forall arg. (GHC.Types.~) (KindOf (Apply UnBoxSym0 arg)) (KindOf (UnBoxSym1 arg)) =>+ = forall arg. KindOf (Apply UnBoxSym0 arg) ~ KindOf (UnBoxSym1 arg) => UnBoxSym0KindInference type instance Apply UnBoxSym0 l = UnBoxSym1 l type family UnBox (a :: Box a) :: a where@@ -31,12 +31,12 @@ sUnBox (SFBox sA) = let lambda ::- forall a. (GHC.Types.~) t (Apply FBoxSym0 a) =>+ forall a. t ~ Apply FBoxSym0 a => Sing a -> Sing (Apply UnBoxSym0 (Apply FBoxSym0 a)) lambda a = a in lambda sA data instance Sing (z :: Box a)- = forall (n :: a). (GHC.Types.~) z (FBox n) => SFBox (Sing n)+ = forall (n :: a). z ~ FBox n => SFBox (Sing n) type SBox (z :: Box a) = Sing z instance SingKind (KProxy :: KProxy a) => SingKind (KProxy :: KProxy (Box a)) where
tests/compile-and-dump/Singletons/CaseExpressions.ghc78.template view
@@ -46,7 +46,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym0KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg) => Let_0123456789Scrutinee_0123456789Sym0KindInference type instance Apply Let_0123456789Scrutinee_0123456789Sym0 l = Let_0123456789Scrutinee_0123456789Sym1 l type Let_0123456789Scrutinee_0123456789 x = x@@ -60,7 +60,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -68,7 +68,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -76,7 +76,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Case_0123456789 x t where@@ -89,7 +89,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym0KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg) => Let_0123456789Scrutinee_0123456789Sym0KindInference type instance Apply Let_0123456789Scrutinee_0123456789Sym0 l = Let_0123456789Scrutinee_0123456789Sym1 l type Let_0123456789Scrutinee_0123456789 x = x@@ -98,14 +98,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789ZSym1KindInference GHC.Tuple.()) data Let_0123456789ZSym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789ZSym1 l) arg)) (KindOf (Let_0123456789ZSym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789ZSym1 l) arg) ~ KindOf (Let_0123456789ZSym2 l arg) => Let_0123456789ZSym1KindInference type instance Apply (Let_0123456789ZSym1 l) l = Let_0123456789ZSym2 l l instance SuppressUnusedWarnings Let_0123456789ZSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789ZSym0KindInference GHC.Tuple.()) data Let_0123456789ZSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789ZSym0 arg)) (KindOf (Let_0123456789ZSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789ZSym0 arg) ~ KindOf (Let_0123456789ZSym1 arg) => Let_0123456789ZSym0KindInference type instance Apply Let_0123456789ZSym0 l = Let_0123456789ZSym1 l type Let_0123456789Z x y = (y :: a)@@ -119,7 +119,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym1KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg) => Let_0123456789Scrutinee_0123456789Sym1KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym1 l) l = Let_0123456789Scrutinee_0123456789Sym2 l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym0 where@@ -128,7 +128,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym0KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg) => Let_0123456789Scrutinee_0123456789Sym0KindInference type instance Apply Let_0123456789Scrutinee_0123456789Sym0 l = Let_0123456789Scrutinee_0123456789Sym1 l type Let_0123456789Scrutinee_0123456789 a b =@@ -143,7 +143,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym0KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg) => Let_0123456789Scrutinee_0123456789Sym0KindInference type instance Apply Let_0123456789Scrutinee_0123456789Sym0 l = Let_0123456789Scrutinee_0123456789Sym1 l type Let_0123456789Scrutinee_0123456789 d = Apply JustSym0 d@@ -157,7 +157,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym1KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg) => Let_0123456789Scrutinee_0123456789Sym1KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym1 l) l = Let_0123456789Scrutinee_0123456789Sym2 l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym0 where@@ -166,7 +166,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym0KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg) => Let_0123456789Scrutinee_0123456789Sym0KindInference type instance Apply Let_0123456789Scrutinee_0123456789Sym0 l = Let_0123456789Scrutinee_0123456789Sym1 l type Let_0123456789Scrutinee_0123456789 d x = x@@ -178,7 +178,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo5Sym0KindInference GHC.Tuple.()) data Foo5Sym0 (l :: TyFun a a)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo5Sym0 arg)) (KindOf (Foo5Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo5Sym0 arg) ~ KindOf (Foo5Sym1 arg) => Foo5Sym0KindInference type instance Apply Foo5Sym0 l = Foo5Sym1 l type Foo4Sym1 (t :: a) = Foo4 t@@ -186,7 +186,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo4Sym0KindInference GHC.Tuple.()) data Foo4Sym0 (l :: TyFun a a)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo4Sym0 arg)) (KindOf (Foo4Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo4Sym0 arg) ~ KindOf (Foo4Sym1 arg) => Foo4Sym0KindInference type instance Apply Foo4Sym0 l = Foo4Sym1 l type Foo3Sym2 (t :: a) (t :: b) = Foo3 t t@@ -194,14 +194,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo3Sym1KindInference GHC.Tuple.()) data Foo3Sym1 (l :: a) (l :: TyFun b a)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo3Sym1 l) arg)) (KindOf (Foo3Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo3Sym1 l) arg) ~ KindOf (Foo3Sym2 l arg) => Foo3Sym1KindInference type instance Apply (Foo3Sym1 l) l = Foo3Sym2 l l instance SuppressUnusedWarnings Foo3Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo3Sym0KindInference GHC.Tuple.()) data Foo3Sym0 (l :: TyFun a (TyFun b a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo3Sym0 arg)) (KindOf (Foo3Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo3Sym0 arg) ~ KindOf (Foo3Sym1 arg) => Foo3Sym0KindInference type instance Apply Foo3Sym0 l = Foo3Sym1 l type Foo2Sym2 (t :: a) (t :: Maybe a) = Foo2 t t@@ -209,14 +209,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo2Sym1KindInference GHC.Tuple.()) data Foo2Sym1 (l :: a) (l :: TyFun (Maybe a) a)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo2Sym1 l) arg)) (KindOf (Foo2Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo2Sym1 l) arg) ~ KindOf (Foo2Sym2 l arg) => Foo2Sym1KindInference type instance Apply (Foo2Sym1 l) l = Foo2Sym2 l l instance SuppressUnusedWarnings Foo2Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo2Sym0KindInference GHC.Tuple.()) data Foo2Sym0 (l :: TyFun a (TyFun (Maybe a) a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo2Sym0 arg)) (KindOf (Foo2Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo2Sym0 arg) ~ KindOf (Foo2Sym1 arg) => Foo2Sym0KindInference type instance Apply Foo2Sym0 l = Foo2Sym1 l type Foo1Sym2 (t :: a) (t :: Maybe a) = Foo1 t t@@ -224,14 +224,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo1Sym1KindInference GHC.Tuple.()) data Foo1Sym1 (l :: a) (l :: TyFun (Maybe a) a)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo1Sym1 l) arg)) (KindOf (Foo1Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo1Sym1 l) arg) ~ KindOf (Foo1Sym2 l arg) => Foo1Sym1KindInference type instance Apply (Foo1Sym1 l) l = Foo1Sym2 l l instance SuppressUnusedWarnings Foo1Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo1Sym0KindInference GHC.Tuple.()) data Foo1Sym0 (l :: TyFun a (TyFun (Maybe a) a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo1Sym0 arg)) (KindOf (Foo1Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo1Sym0 arg) ~ KindOf (Foo1Sym1 arg) => Foo1Sym0KindInference type instance Apply Foo1Sym0 l = Foo1Sym1 l type family Foo5 (a :: a) :: a where@@ -257,8 +257,7 @@ Sing t -> Sing t -> Sing (Apply (Apply Foo1Sym0 t) t) sFoo5 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo5Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo5Sym0 x) lambda x = let sScrutinee_0123456789 ::@@ -293,8 +292,7 @@ in lambda sX sFoo4 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo4Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo4Sym0 x) lambda x = let sScrutinee_0123456789 ::@@ -315,7 +313,7 @@ sFoo3 sA sB = let lambda ::- forall a b. ((GHC.Types.~) t a, (GHC.Types.~) t b) =>+ forall a b. (t ~ a, t ~ b) => Sing a -> Sing b -> Sing (Apply (Apply Foo3Sym0 a) b) lambda a b = let@@ -338,7 +336,7 @@ sFoo2 sD _ = let lambda ::- forall d wild. ((GHC.Types.~) t d, (GHC.Types.~) t wild) =>+ forall d wild. (t ~ d, t ~ wild) => Sing d -> Sing (Apply (Apply Foo2Sym0 d) wild) lambda d = let@@ -358,7 +356,7 @@ sFoo1 sD sX = let lambda ::- forall d x. ((GHC.Types.~) t d, (GHC.Types.~) t x) =>+ forall d x. (t ~ d, t ~ x) => Sing d -> Sing x -> Sing (Apply (Apply Foo1Sym0 d) x) lambda d x = let
tests/compile-and-dump/Singletons/Contains.ghc78.template view
@@ -13,14 +13,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) ContainsSym1KindInference GHC.Tuple.()) data ContainsSym1 (l :: a) (l :: TyFun (GHC.Types.[] a) Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply (ContainsSym1 l) arg)) (KindOf (ContainsSym2 l arg)) =>+ = forall arg. KindOf (Apply (ContainsSym1 l) arg) ~ KindOf (ContainsSym2 l arg) => ContainsSym1KindInference type instance Apply (ContainsSym1 l) l = ContainsSym2 l l instance SuppressUnusedWarnings ContainsSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) ContainsSym0KindInference GHC.Tuple.()) data ContainsSym0 (l :: TyFun a (TyFun (GHC.Types.[] a) Bool -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply ContainsSym0 arg)) (KindOf (ContainsSym1 arg)) =>+ = forall arg. KindOf (Apply ContainsSym0 arg) ~ KindOf (ContainsSym1 arg) => ContainsSym0KindInference type instance Apply ContainsSym0 l = ContainsSym1 l type family Contains (a :: a) (a :: GHC.Types.[] a) :: Bool where@@ -32,16 +32,14 @@ sContains _ SNil = let lambda ::- forall wild. ((GHC.Types.~) t wild,- (GHC.Types.~) t GHC.Types.[]) =>+ forall wild. (t ~ wild, t ~ GHC.Types.[]) => Sing (Apply (Apply ContainsSym0 wild) GHC.Types.[]) lambda = SFalse in lambda sContains sElt (SCons sH sT) = let lambda ::- forall elt h t. ((GHC.Types.~) t elt,- (GHC.Types.~) t (Apply (Apply (:$) h) t)) =>+ forall elt h t. (t ~ elt, t ~ Apply (Apply (:$) h) t) => Sing elt -> Sing h -> Sing t
tests/compile-and-dump/Singletons/DataValues.ghc78.template view
@@ -22,14 +22,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) PairSym1KindInference GHC.Tuple.()) data PairSym1 (l :: a) (l :: TyFun b (Pair a b))- = forall arg. (GHC.Types.~) (KindOf (Apply (PairSym1 l) arg)) (KindOf (PairSym2 l arg)) =>+ = forall arg. KindOf (Apply (PairSym1 l) arg) ~ KindOf (PairSym2 l arg) => PairSym1KindInference type instance Apply (PairSym1 l) l = PairSym2 l l instance SuppressUnusedWarnings PairSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) PairSym0KindInference GHC.Tuple.()) data PairSym0 (l :: TyFun a (TyFun b (Pair a b) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply PairSym0 arg)) (KindOf (PairSym1 arg)) =>+ = forall arg. KindOf (Apply PairSym0 arg) ~ KindOf (PairSym1 arg) => PairSym0KindInference type instance Apply PairSym0 l = PairSym1 l type AListSym0 = AList@@ -86,8 +86,7 @@ (applySing (applySing (singFun2 (Proxy :: Proxy (:$)) SCons) SZero) SNil) data instance Sing (z :: Pair a b)- = forall (n :: a) (n :: b). (GHC.Types.~) z (Pair n n) =>- SPair (Sing n) (Sing n)+ = forall (n :: a) (n :: b). z ~ Pair n n => SPair (Sing n) (Sing n) type SPair (z :: Pair a b) = Sing z instance (SingKind (KProxy :: KProxy a), SingKind (KProxy :: KProxy b)) =>
tests/compile-and-dump/Singletons/Error.ghc78.template view
@@ -13,7 +13,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) HeadSym0KindInference GHC.Tuple.()) data HeadSym0 (l :: TyFun (GHC.Types.[] a) a)- = forall arg. (GHC.Types.~) (KindOf (Apply HeadSym0 arg)) (KindOf (HeadSym1 arg)) =>+ = forall arg. KindOf (Apply HeadSym0 arg) ~ KindOf (HeadSym1 arg) => HeadSym0KindInference type instance Apply HeadSym0 l = HeadSym1 l type family Head (a :: GHC.Types.[] a) :: a where@@ -24,14 +24,13 @@ sHead (SCons sA _) = let lambda ::- forall a wild. (GHC.Types.~) t (Apply (Apply (:$) a) wild) =>+ forall a wild. t ~ Apply (Apply (:$) a) wild => Sing a -> Sing (Apply HeadSym0 (Apply (Apply (:$) a) wild)) lambda a = a in lambda sA sHead SNil = let- lambda ::- (GHC.Types.~) t GHC.Types.[] => Sing (Apply HeadSym0 GHC.Types.[])+ lambda :: t ~ GHC.Types.[] => Sing (Apply HeadSym0 GHC.Types.[]) lambda = applySing (singFun1 (Proxy :: Proxy ErrorSym0) sError)
tests/compile-and-dump/Singletons/HigherOrder.ghc78.template view
@@ -47,7 +47,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) LeftSym0KindInference GHC.Tuple.()) data LeftSym0 (l :: TyFun a (Either a b))- = forall arg. (GHC.Types.~) (KindOf (Apply LeftSym0 arg)) (KindOf (LeftSym1 arg)) =>+ = forall arg. KindOf (Apply LeftSym0 arg) ~ KindOf (LeftSym1 arg) => LeftSym0KindInference type instance Apply LeftSym0 l = LeftSym1 l type RightSym1 (t :: b) = Right t@@ -55,7 +55,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) RightSym0KindInference GHC.Tuple.()) data RightSym0 (l :: TyFun b (Either a b))- = forall arg. (GHC.Types.~) (KindOf (Apply RightSym0 arg)) (KindOf (RightSym1 arg)) =>+ = forall arg. KindOf (Apply RightSym0 arg) ~ KindOf (RightSym1 arg) => RightSym0KindInference type instance Apply RightSym0 l = RightSym1 l type Let_0123456789Scrutinee_0123456789Sym4 t t t t =@@ -66,7 +66,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym3KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym3 l l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym3 l l l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym3 l l l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym4 l l l arg) => Let_0123456789Scrutinee_0123456789Sym3KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym3 l l l) l = Let_0123456789Scrutinee_0123456789Sym4 l l l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym2 where@@ -75,7 +75,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym2KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym3 l l arg) => Let_0123456789Scrutinee_0123456789Sym2KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) l = Let_0123456789Scrutinee_0123456789Sym3 l l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym1 where@@ -84,7 +84,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym1KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg) => Let_0123456789Scrutinee_0123456789Sym1KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym1 l) l = Let_0123456789Scrutinee_0123456789Sym2 l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym0 where@@ -93,7 +93,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym0KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg) => Let_0123456789Scrutinee_0123456789Sym0KindInference type instance Apply Let_0123456789Scrutinee_0123456789Sym0 l = Let_0123456789Scrutinee_0123456789Sym1 l type Let_0123456789Scrutinee_0123456789 ns bs n b = b@@ -108,7 +108,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym3KindInference GHC.Tuple.()) data Lambda_0123456789Sym3 l l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym3 l l l) arg)) (KindOf (Lambda_0123456789Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym3 l l l) arg) ~ KindOf (Lambda_0123456789Sym4 l l l arg) => Lambda_0123456789Sym3KindInference type instance Apply (Lambda_0123456789Sym3 l l l) l = Lambda_0123456789Sym4 l l l l instance SuppressUnusedWarnings Lambda_0123456789Sym2 where@@ -116,7 +116,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -124,7 +124,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -132,7 +132,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type Let_0123456789Scrutinee_0123456789Sym4 t t t t =@@ -143,7 +143,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym3KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym3 l l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym3 l l l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym3 l l l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym4 l l l arg) => Let_0123456789Scrutinee_0123456789Sym3KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym3 l l l) l = Let_0123456789Scrutinee_0123456789Sym4 l l l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym2 where@@ -152,7 +152,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym2KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym3 l l arg) => Let_0123456789Scrutinee_0123456789Sym2KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym2 l l) l = Let_0123456789Scrutinee_0123456789Sym3 l l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym1 where@@ -161,7 +161,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym1KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg) => Let_0123456789Scrutinee_0123456789Sym1KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym1 l) l = Let_0123456789Scrutinee_0123456789Sym2 l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym0 where@@ -170,7 +170,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym0KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg) => Let_0123456789Scrutinee_0123456789Sym0KindInference type instance Apply Let_0123456789Scrutinee_0123456789Sym0 l = Let_0123456789Scrutinee_0123456789Sym1 l type Let_0123456789Scrutinee_0123456789 n@@ -189,7 +189,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym3KindInference GHC.Tuple.()) data Lambda_0123456789Sym3 l l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym3 l l l) arg)) (KindOf (Lambda_0123456789Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym3 l l l) arg) ~ KindOf (Lambda_0123456789Sym4 l l l arg) => Lambda_0123456789Sym3KindInference type instance Apply (Lambda_0123456789Sym3 l l l) l = Lambda_0123456789Sym4 l l l l instance SuppressUnusedWarnings Lambda_0123456789Sym2 where@@ -197,7 +197,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -205,7 +205,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -213,7 +213,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type FooSym3 (t :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *)@@ -226,7 +226,7 @@ data FooSym2 (l :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *) (l :: TyFun a b -> *) (l :: TyFun a b)- = forall arg. (GHC.Types.~) (KindOf (Apply (FooSym2 l l) arg)) (KindOf (FooSym3 l l arg)) =>+ = forall arg. KindOf (Apply (FooSym2 l l) arg) ~ KindOf (FooSym3 l l arg) => FooSym2KindInference type instance Apply (FooSym2 l l) l = FooSym3 l l l instance SuppressUnusedWarnings FooSym1 where@@ -234,7 +234,7 @@ = snd (GHC.Tuple.(,) FooSym1KindInference GHC.Tuple.()) data FooSym1 (l :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *) (l :: TyFun (TyFun a b -> *) (TyFun a b -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (FooSym1 l) arg)) (KindOf (FooSym2 l arg)) =>+ = forall arg. KindOf (Apply (FooSym1 l) arg) ~ KindOf (FooSym2 l arg) => FooSym1KindInference type instance Apply (FooSym1 l) l = FooSym2 l l instance SuppressUnusedWarnings FooSym0 where@@ -242,7 +242,7 @@ = snd (GHC.Tuple.(,) FooSym0KindInference GHC.Tuple.()) data FooSym0 (l :: TyFun (TyFun (TyFun a b -> *) (TyFun a b -> *) -> *) (TyFun (TyFun a b -> *) (TyFun a b -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply FooSym0 arg)) (KindOf (FooSym1 arg)) =>+ = forall arg. KindOf (Apply FooSym0 arg) ~ KindOf (FooSym1 arg) => FooSym0KindInference type instance Apply FooSym0 l = FooSym1 l type ZipWithSym3 (t :: TyFun a (TyFun b c -> *) -> *)@@ -255,7 +255,7 @@ data ZipWithSym2 (l :: TyFun a (TyFun b c -> *) -> *) (l :: GHC.Types.[] a) (l :: TyFun (GHC.Types.[] b) (GHC.Types.[] c))- = forall arg. (GHC.Types.~) (KindOf (Apply (ZipWithSym2 l l) arg)) (KindOf (ZipWithSym3 l l arg)) =>+ = forall arg. KindOf (Apply (ZipWithSym2 l l) arg) ~ KindOf (ZipWithSym3 l l arg) => ZipWithSym2KindInference type instance Apply (ZipWithSym2 l l) l = ZipWithSym3 l l l instance SuppressUnusedWarnings ZipWithSym1 where@@ -264,7 +264,7 @@ data ZipWithSym1 (l :: TyFun a (TyFun b c -> *) -> *) (l :: TyFun (GHC.Types.[] a) (TyFun (GHC.Types.[] b) (GHC.Types.[] c) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (ZipWithSym1 l) arg)) (KindOf (ZipWithSym2 l arg)) =>+ = forall arg. KindOf (Apply (ZipWithSym1 l) arg) ~ KindOf (ZipWithSym2 l arg) => ZipWithSym1KindInference type instance Apply (ZipWithSym1 l) l = ZipWithSym2 l l instance SuppressUnusedWarnings ZipWithSym0 where@@ -274,7 +274,7 @@ -> *) (TyFun (GHC.Types.[] a) (TyFun (GHC.Types.[] b) (GHC.Types.[] c) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply ZipWithSym0 arg)) (KindOf (ZipWithSym1 arg)) =>+ = forall arg. KindOf (Apply ZipWithSym0 arg) ~ KindOf (ZipWithSym1 arg) => ZipWithSym0KindInference type instance Apply ZipWithSym0 l = ZipWithSym1 l type SplungeSym2 (t :: GHC.Types.[] Nat) (t :: GHC.Types.[] Bool) =@@ -284,7 +284,7 @@ = snd (GHC.Tuple.(,) SplungeSym1KindInference GHC.Tuple.()) data SplungeSym1 (l :: GHC.Types.[] Nat) (l :: TyFun (GHC.Types.[] Bool) (GHC.Types.[] Nat))- = forall arg. (GHC.Types.~) (KindOf (Apply (SplungeSym1 l) arg)) (KindOf (SplungeSym2 l arg)) =>+ = forall arg. KindOf (Apply (SplungeSym1 l) arg) ~ KindOf (SplungeSym2 l arg) => SplungeSym1KindInference type instance Apply (SplungeSym1 l) l = SplungeSym2 l l instance SuppressUnusedWarnings SplungeSym0 where@@ -292,7 +292,7 @@ = snd (GHC.Tuple.(,) SplungeSym0KindInference GHC.Tuple.()) data SplungeSym0 (l :: TyFun (GHC.Types.[] Nat) (TyFun (GHC.Types.[] Bool) (GHC.Types.[] Nat) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply SplungeSym0 arg)) (KindOf (SplungeSym1 arg)) =>+ = forall arg. KindOf (Apply SplungeSym0 arg) ~ KindOf (SplungeSym1 arg) => SplungeSym0KindInference type instance Apply SplungeSym0 l = SplungeSym1 l type EtadSym2 (t :: GHC.Types.[] Nat) (t :: GHC.Types.[] Bool) =@@ -302,7 +302,7 @@ = snd (GHC.Tuple.(,) EtadSym1KindInference GHC.Tuple.()) data EtadSym1 (l :: GHC.Types.[] Nat) (l :: TyFun (GHC.Types.[] Bool) (GHC.Types.[] Nat))- = forall arg. (GHC.Types.~) (KindOf (Apply (EtadSym1 l) arg)) (KindOf (EtadSym2 l arg)) =>+ = forall arg. KindOf (Apply (EtadSym1 l) arg) ~ KindOf (EtadSym2 l arg) => EtadSym1KindInference type instance Apply (EtadSym1 l) l = EtadSym2 l l instance SuppressUnusedWarnings EtadSym0 where@@ -310,7 +310,7 @@ = snd (GHC.Tuple.(,) EtadSym0KindInference GHC.Tuple.()) data EtadSym0 (l :: TyFun (GHC.Types.[] Nat) (TyFun (GHC.Types.[] Bool) (GHC.Types.[] Nat) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply EtadSym0 arg)) (KindOf (EtadSym1 arg)) =>+ = forall arg. KindOf (Apply EtadSym0 arg) ~ KindOf (EtadSym1 arg) => EtadSym0KindInference type instance Apply EtadSym0 l = EtadSym1 l type LiftMaybeSym2 (t :: TyFun a b -> *) (t :: Maybe a) =@@ -320,7 +320,7 @@ = snd (GHC.Tuple.(,) LiftMaybeSym1KindInference GHC.Tuple.()) data LiftMaybeSym1 (l :: TyFun a b -> *) (l :: TyFun (Maybe a) (Maybe b))- = forall arg. (GHC.Types.~) (KindOf (Apply (LiftMaybeSym1 l) arg)) (KindOf (LiftMaybeSym2 l arg)) =>+ = forall arg. KindOf (Apply (LiftMaybeSym1 l) arg) ~ KindOf (LiftMaybeSym2 l arg) => LiftMaybeSym1KindInference type instance Apply (LiftMaybeSym1 l) l = LiftMaybeSym2 l l instance SuppressUnusedWarnings LiftMaybeSym0 where@@ -328,7 +328,7 @@ = snd (GHC.Tuple.(,) LiftMaybeSym0KindInference GHC.Tuple.()) data LiftMaybeSym0 (l :: TyFun (TyFun a b -> *) (TyFun (Maybe a) (Maybe b) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply LiftMaybeSym0 arg)) (KindOf (LiftMaybeSym1 arg)) =>+ = forall arg. KindOf (Apply LiftMaybeSym0 arg) ~ KindOf (LiftMaybeSym1 arg) => LiftMaybeSym0KindInference type instance Apply LiftMaybeSym0 l = LiftMaybeSym1 l type MapSym2 (t :: TyFun a b -> *) (t :: GHC.Types.[] a) = Map t t@@ -337,7 +337,7 @@ = snd (GHC.Tuple.(,) MapSym1KindInference GHC.Tuple.()) data MapSym1 (l :: TyFun a b -> *) (l :: TyFun (GHC.Types.[] a) (GHC.Types.[] b))- = forall arg. (GHC.Types.~) (KindOf (Apply (MapSym1 l) arg)) (KindOf (MapSym2 l arg)) =>+ = forall arg. KindOf (Apply (MapSym1 l) arg) ~ KindOf (MapSym2 l arg) => MapSym1KindInference type instance Apply (MapSym1 l) l = MapSym2 l l instance SuppressUnusedWarnings MapSym0 where@@ -345,7 +345,7 @@ = snd (GHC.Tuple.(,) MapSym0KindInference GHC.Tuple.()) data MapSym0 (l :: TyFun (TyFun a b -> *) (TyFun (GHC.Types.[] a) (GHC.Types.[] b) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply MapSym0 arg)) (KindOf (MapSym1 arg)) =>+ = forall arg. KindOf (Apply MapSym0 arg) ~ KindOf (MapSym1 arg) => MapSym0KindInference type instance Apply MapSym0 l = MapSym1 l type family Foo (a :: TyFun (TyFun a b -> *) (TyFun a b -> *) -> *)@@ -401,9 +401,7 @@ sFoo sF sG sA = let lambda ::- forall f g a. ((GHC.Types.~) t f,- (GHC.Types.~) t g,- (GHC.Types.~) t a) =>+ forall f g a. (t ~ f, t ~ g, t ~ a) => Sing f -> Sing g -> Sing a -> Sing (Apply (Apply (Apply FooSym0 f) g) a) lambda f g a = applySing (applySing f g) a@@ -411,9 +409,9 @@ sZipWith sF (SCons sX sXs) (SCons sY sYs) = let lambda ::- forall f x xs y ys. ((GHC.Types.~) t f,- (GHC.Types.~) t (Apply (Apply (:$) x) xs),- (GHC.Types.~) t (Apply (Apply (:$) y) ys)) =>+ forall f x xs y ys. (t ~ f,+ t ~ Apply (Apply (:$) x) xs,+ t ~ Apply (Apply (:$) y) ys) => Sing f -> Sing x -> Sing xs@@ -433,34 +431,32 @@ sZipWith _ SNil SNil = let lambda ::- forall wild. ((GHC.Types.~) t wild,- (GHC.Types.~) t GHC.Types.[],- (GHC.Types.~) t GHC.Types.[]) =>+ forall wild. (t ~ wild, t ~ GHC.Types.[], t ~ GHC.Types.[]) => Sing (Apply (Apply (Apply ZipWithSym0 wild) GHC.Types.[]) GHC.Types.[]) lambda = SNil in lambda sZipWith _ (SCons _ _) SNil = let lambda ::- forall wild wild wild. ((GHC.Types.~) t wild,- (GHC.Types.~) t (Apply (Apply (:$) wild) wild),- (GHC.Types.~) t GHC.Types.[]) =>+ forall wild wild wild. (t ~ wild,+ t ~ Apply (Apply (:$) wild) wild,+ t ~ GHC.Types.[]) => Sing (Apply (Apply (Apply ZipWithSym0 wild) (Apply (Apply (:$) wild) wild)) GHC.Types.[]) lambda = SNil in lambda sZipWith _ SNil (SCons _ _) = let lambda ::- forall wild wild wild. ((GHC.Types.~) t wild,- (GHC.Types.~) t GHC.Types.[],- (GHC.Types.~) t (Apply (Apply (:$) wild) wild)) =>+ forall wild wild wild. (t ~ wild,+ t ~ GHC.Types.[],+ t ~ Apply (Apply (:$) wild) wild) => Sing (Apply (Apply (Apply ZipWithSym0 wild) GHC.Types.[]) (Apply (Apply (:$) wild) wild)) lambda = SNil in lambda sSplunge sNs sBs = let lambda ::- forall ns bs. ((GHC.Types.~) t ns, (GHC.Types.~) t bs) =>+ forall ns bs. (t ~ ns, t ~ bs) => Sing ns -> Sing bs -> Sing (Apply (Apply SplungeSym0 ns) bs) lambda ns bs = applySing@@ -505,8 +501,8 @@ sEtad sA_0123456789 sA_0123456789 = let lambda ::- forall a_0123456789 a_0123456789. ((GHC.Types.~) t a_0123456789,- (GHC.Types.~) t a_0123456789) =>+ forall a_0123456789 a_0123456789. (t ~ a_0123456789,+ t ~ a_0123456789) => Sing a_0123456789 -> Sing a_0123456789 -> Sing (Apply (Apply EtadSym0 a_0123456789) a_0123456789)@@ -556,8 +552,7 @@ sLiftMaybe sF (SJust sX) = let lambda ::- forall f x. ((GHC.Types.~) t f,- (GHC.Types.~) t (Apply JustSym0 x)) =>+ forall f x. (t ~ f, t ~ Apply JustSym0 x) => Sing f -> Sing x -> Sing (Apply (Apply LiftMaybeSym0 f) (Apply JustSym0 x))@@ -568,23 +563,21 @@ sLiftMaybe _ SNothing = let lambda ::- forall wild. ((GHC.Types.~) t wild, (GHC.Types.~) t NothingSym0) =>+ forall wild. (t ~ wild, t ~ NothingSym0) => Sing (Apply (Apply LiftMaybeSym0 wild) NothingSym0) lambda = SNothing in lambda sMap _ SNil = let lambda ::- forall wild. ((GHC.Types.~) t wild,- (GHC.Types.~) t GHC.Types.[]) =>+ forall wild. (t ~ wild, t ~ GHC.Types.[]) => Sing (Apply (Apply MapSym0 wild) GHC.Types.[]) lambda = SNil in lambda sMap sF (SCons sH sT) = let lambda ::- forall f h t. ((GHC.Types.~) t f,- (GHC.Types.~) t (Apply (Apply (:$) h) t)) =>+ forall f h t. (t ~ f, t ~ Apply (Apply (:$) h) t) => Sing f -> Sing h -> Sing t@@ -596,8 +589,8 @@ (applySing (singFun2 (Proxy :: Proxy MapSym0) sMap) f) t) in lambda sF sH sT data instance Sing (z :: Either a b)- = forall (n :: a). (GHC.Types.~) z (Left n) => SLeft (Sing n) |- forall (n :: b). (GHC.Types.~) z (Right n) => SRight (Sing n)+ = forall (n :: a). z ~ Left n => SLeft (Sing n) |+ forall (n :: b). z ~ Right n => SRight (Sing n) type SEither (z :: Either a b) = Sing z instance (SingKind (KProxy :: KProxy a), SingKind (KProxy :: KProxy b)) =>
tests/compile-and-dump/Singletons/LambdaCase.ghc78.template view
@@ -40,7 +40,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -48,7 +48,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -56,7 +56,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Case_0123456789 d x_0123456789 t where@@ -70,7 +70,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -78,7 +78,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Case_0123456789 d x x_0123456789 t where@@ -92,7 +92,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -100,7 +100,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -108,7 +108,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type Foo3Sym2 (t :: a) (t :: b) = Foo3 t t@@ -116,14 +116,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo3Sym1KindInference GHC.Tuple.()) data Foo3Sym1 (l :: a) (l :: TyFun b a)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo3Sym1 l) arg)) (KindOf (Foo3Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo3Sym1 l) arg) ~ KindOf (Foo3Sym2 l arg) => Foo3Sym1KindInference type instance Apply (Foo3Sym1 l) l = Foo3Sym2 l l instance SuppressUnusedWarnings Foo3Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo3Sym0KindInference GHC.Tuple.()) data Foo3Sym0 (l :: TyFun a (TyFun b a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo3Sym0 arg)) (KindOf (Foo3Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo3Sym0 arg) ~ KindOf (Foo3Sym1 arg) => Foo3Sym0KindInference type instance Apply Foo3Sym0 l = Foo3Sym1 l type Foo2Sym2 (t :: a) (t :: Maybe a) = Foo2 t t@@ -131,14 +131,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo2Sym1KindInference GHC.Tuple.()) data Foo2Sym1 (l :: a) (l :: TyFun (Maybe a) a)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo2Sym1 l) arg)) (KindOf (Foo2Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo2Sym1 l) arg) ~ KindOf (Foo2Sym2 l arg) => Foo2Sym1KindInference type instance Apply (Foo2Sym1 l) l = Foo2Sym2 l l instance SuppressUnusedWarnings Foo2Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo2Sym0KindInference GHC.Tuple.()) data Foo2Sym0 (l :: TyFun a (TyFun (Maybe a) a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo2Sym0 arg)) (KindOf (Foo2Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo2Sym0 arg) ~ KindOf (Foo2Sym1 arg) => Foo2Sym0KindInference type instance Apply Foo2Sym0 l = Foo2Sym1 l type Foo1Sym2 (t :: a) (t :: Maybe a) = Foo1 t t@@ -146,14 +146,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo1Sym1KindInference GHC.Tuple.()) data Foo1Sym1 (l :: a) (l :: TyFun (Maybe a) a)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo1Sym1 l) arg)) (KindOf (Foo1Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo1Sym1 l) arg) ~ KindOf (Foo1Sym2 l arg) => Foo1Sym1KindInference type instance Apply (Foo1Sym1 l) l = Foo1Sym2 l l instance SuppressUnusedWarnings Foo1Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo1Sym0KindInference GHC.Tuple.()) data Foo1Sym0 (l :: TyFun a (TyFun (Maybe a) a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo1Sym0 arg)) (KindOf (Foo1Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo1Sym0 arg) ~ KindOf (Foo1Sym1 arg) => Foo1Sym0KindInference type instance Apply Foo1Sym0 l = Foo1Sym1 l type family Foo3 (a :: a) (a :: b) :: a where@@ -174,7 +174,7 @@ sFoo3 sA sB = let lambda ::- forall a b. ((GHC.Types.~) t a, (GHC.Types.~) t b) =>+ forall a b. (t ~ a, t ~ b) => Sing a -> Sing b -> Sing (Apply (Apply Foo3Sym0 a) b) lambda a b = applySing@@ -203,7 +203,7 @@ sFoo2 sD _ = let lambda ::- forall d wild. ((GHC.Types.~) t d, (GHC.Types.~) t wild) =>+ forall d wild. (t ~ d, t ~ wild) => Sing d -> Sing (Apply (Apply Foo2Sym0 d) wild) lambda d = applySing@@ -236,7 +236,7 @@ sFoo1 sD sX = let lambda ::- forall d x. ((GHC.Types.~) t d, (GHC.Types.~) t x) =>+ forall d x. (t ~ d, t ~ x) => Sing d -> Sing x -> Sing (Apply (Apply Foo1Sym0 d) x) lambda d x = applySing
tests/compile-and-dump/Singletons/Lambdas.ghc78.template view
@@ -46,14 +46,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) FooSym1KindInference GHC.Tuple.()) data FooSym1 (l :: a) (l :: TyFun b (Foo a b))- = forall arg. (GHC.Types.~) (KindOf (Apply (FooSym1 l) arg)) (KindOf (FooSym2 l arg)) =>+ = forall arg. KindOf (Apply (FooSym1 l) arg) ~ KindOf (FooSym2 l arg) => FooSym1KindInference type instance Apply (FooSym1 l) l = FooSym2 l l instance SuppressUnusedWarnings FooSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) FooSym0KindInference GHC.Tuple.()) data FooSym0 (l :: TyFun a (TyFun b (Foo a b) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply FooSym0 arg)) (KindOf (FooSym1 arg)) =>+ = forall arg. KindOf (Apply FooSym0 arg) ~ KindOf (FooSym1 arg) => FooSym0KindInference type instance Apply FooSym0 l = FooSym1 l type family Case_0123456789 x arg_0123456789 t where@@ -66,7 +66,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -74,7 +74,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Case_0123456789 x y arg_0123456789 t where@@ -87,7 +87,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -95,7 +95,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -103,7 +103,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Case_0123456789 a b x arg_0123456789 t where@@ -116,7 +116,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym3KindInference GHC.Tuple.()) data Lambda_0123456789Sym3 l l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym3 l l l) arg)) (KindOf (Lambda_0123456789Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym3 l l l) arg) ~ KindOf (Lambda_0123456789Sym4 l l l arg) => Lambda_0123456789Sym3KindInference type instance Apply (Lambda_0123456789Sym3 l l l) l = Lambda_0123456789Sym4 l l l l instance SuppressUnusedWarnings Lambda_0123456789Sym2 where@@ -124,7 +124,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -132,7 +132,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -140,7 +140,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Lambda_0123456789 a b t where@@ -151,7 +151,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -159,7 +159,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -167,7 +167,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Lambda_0123456789 x y t where@@ -178,7 +178,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -186,7 +186,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -194,7 +194,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Case_0123456789 x@@ -212,7 +212,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym4KindInference GHC.Tuple.()) data Lambda_0123456789Sym4 l l l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym4 l l l l) arg)) (KindOf (Lambda_0123456789Sym5 l l l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym4 l l l l) arg) ~ KindOf (Lambda_0123456789Sym5 l l l l arg) => Lambda_0123456789Sym4KindInference type instance Apply (Lambda_0123456789Sym4 l l l l) l = Lambda_0123456789Sym5 l l l l l instance SuppressUnusedWarnings Lambda_0123456789Sym3 where@@ -220,7 +220,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym3KindInference GHC.Tuple.()) data Lambda_0123456789Sym3 l l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym3 l l l) arg)) (KindOf (Lambda_0123456789Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym3 l l l) arg) ~ KindOf (Lambda_0123456789Sym4 l l l arg) => Lambda_0123456789Sym3KindInference type instance Apply (Lambda_0123456789Sym3 l l l) l = Lambda_0123456789Sym4 l l l l instance SuppressUnusedWarnings Lambda_0123456789Sym2 where@@ -228,7 +228,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -236,7 +236,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -244,7 +244,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Lambda_0123456789 x t where@@ -255,7 +255,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -263,7 +263,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Case_0123456789 x y arg_0123456789 t where@@ -276,7 +276,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -284,7 +284,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -292,7 +292,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Case_0123456789 x arg_0123456789 a_0123456789 t where@@ -305,7 +305,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -313,7 +313,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -321,7 +321,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Lambda_0123456789 a_0123456789 a_0123456789 t t where@@ -332,7 +332,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym3KindInference GHC.Tuple.()) data Lambda_0123456789Sym3 l l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym3 l l l) arg)) (KindOf (Lambda_0123456789Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym3 l l l) arg) ~ KindOf (Lambda_0123456789Sym4 l l l arg) => Lambda_0123456789Sym3KindInference type instance Apply (Lambda_0123456789Sym3 l l l) l = Lambda_0123456789Sym4 l l l l instance SuppressUnusedWarnings Lambda_0123456789Sym2 where@@ -340,7 +340,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -348,7 +348,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -356,7 +356,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type Foo8Sym1 (t :: Foo a b) = Foo8 t@@ -364,7 +364,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo8Sym0KindInference GHC.Tuple.()) data Foo8Sym0 (l :: TyFun (Foo a b) a)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo8Sym0 arg)) (KindOf (Foo8Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo8Sym0 arg) ~ KindOf (Foo8Sym1 arg) => Foo8Sym0KindInference type instance Apply Foo8Sym0 l = Foo8Sym1 l type Foo7Sym2 (t :: a) (t :: b) = Foo7 t t@@ -372,14 +372,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo7Sym1KindInference GHC.Tuple.()) data Foo7Sym1 (l :: a) (l :: TyFun b b)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo7Sym1 l) arg)) (KindOf (Foo7Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo7Sym1 l) arg) ~ KindOf (Foo7Sym2 l arg) => Foo7Sym1KindInference type instance Apply (Foo7Sym1 l) l = Foo7Sym2 l l instance SuppressUnusedWarnings Foo7Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo7Sym0KindInference GHC.Tuple.()) data Foo7Sym0 (l :: TyFun a (TyFun b b -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo7Sym0 arg)) (KindOf (Foo7Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo7Sym0 arg) ~ KindOf (Foo7Sym1 arg) => Foo7Sym0KindInference type instance Apply Foo7Sym0 l = Foo7Sym1 l type Foo6Sym2 (t :: a) (t :: b) = Foo6 t t@@ -387,14 +387,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo6Sym1KindInference GHC.Tuple.()) data Foo6Sym1 (l :: a) (l :: TyFun b a)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo6Sym1 l) arg)) (KindOf (Foo6Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo6Sym1 l) arg) ~ KindOf (Foo6Sym2 l arg) => Foo6Sym1KindInference type instance Apply (Foo6Sym1 l) l = Foo6Sym2 l l instance SuppressUnusedWarnings Foo6Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo6Sym0KindInference GHC.Tuple.()) data Foo6Sym0 (l :: TyFun a (TyFun b a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo6Sym0 arg)) (KindOf (Foo6Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo6Sym0 arg) ~ KindOf (Foo6Sym1 arg) => Foo6Sym0KindInference type instance Apply Foo6Sym0 l = Foo6Sym1 l type Foo5Sym2 (t :: a) (t :: b) = Foo5 t t@@ -402,14 +402,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo5Sym1KindInference GHC.Tuple.()) data Foo5Sym1 (l :: a) (l :: TyFun b b)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo5Sym1 l) arg)) (KindOf (Foo5Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo5Sym1 l) arg) ~ KindOf (Foo5Sym2 l arg) => Foo5Sym1KindInference type instance Apply (Foo5Sym1 l) l = Foo5Sym2 l l instance SuppressUnusedWarnings Foo5Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo5Sym0KindInference GHC.Tuple.()) data Foo5Sym0 (l :: TyFun a (TyFun b b -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo5Sym0 arg)) (KindOf (Foo5Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo5Sym0 arg) ~ KindOf (Foo5Sym1 arg) => Foo5Sym0KindInference type instance Apply Foo5Sym0 l = Foo5Sym1 l type Foo4Sym3 (t :: a) (t :: b) (t :: c) = Foo4 t t t@@ -417,21 +417,21 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo4Sym2KindInference GHC.Tuple.()) data Foo4Sym2 (l :: a) (l :: b) (l :: TyFun c a)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo4Sym2 l l) arg)) (KindOf (Foo4Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Foo4Sym2 l l) arg) ~ KindOf (Foo4Sym3 l l arg) => Foo4Sym2KindInference type instance Apply (Foo4Sym2 l l) l = Foo4Sym3 l l l instance SuppressUnusedWarnings Foo4Sym1 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo4Sym1KindInference GHC.Tuple.()) data Foo4Sym1 (l :: a) (l :: TyFun b (TyFun c a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo4Sym1 l) arg)) (KindOf (Foo4Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo4Sym1 l) arg) ~ KindOf (Foo4Sym2 l arg) => Foo4Sym1KindInference type instance Apply (Foo4Sym1 l) l = Foo4Sym2 l l instance SuppressUnusedWarnings Foo4Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo4Sym0KindInference GHC.Tuple.()) data Foo4Sym0 (l :: TyFun a (TyFun b (TyFun c a -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo4Sym0 arg)) (KindOf (Foo4Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo4Sym0 arg) ~ KindOf (Foo4Sym1 arg) => Foo4Sym0KindInference type instance Apply Foo4Sym0 l = Foo4Sym1 l type Foo3Sym1 (t :: a) = Foo3 t@@ -439,7 +439,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo3Sym0KindInference GHC.Tuple.()) data Foo3Sym0 (l :: TyFun a a)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo3Sym0 arg)) (KindOf (Foo3Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo3Sym0 arg) ~ KindOf (Foo3Sym1 arg) => Foo3Sym0KindInference type instance Apply Foo3Sym0 l = Foo3Sym1 l type Foo2Sym2 (t :: a) (t :: b) = Foo2 t t@@ -447,14 +447,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo2Sym1KindInference GHC.Tuple.()) data Foo2Sym1 (l :: a) (l :: TyFun b a)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo2Sym1 l) arg)) (KindOf (Foo2Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo2Sym1 l) arg) ~ KindOf (Foo2Sym2 l arg) => Foo2Sym1KindInference type instance Apply (Foo2Sym1 l) l = Foo2Sym2 l l instance SuppressUnusedWarnings Foo2Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo2Sym0KindInference GHC.Tuple.()) data Foo2Sym0 (l :: TyFun a (TyFun b a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo2Sym0 arg)) (KindOf (Foo2Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo2Sym0 arg) ~ KindOf (Foo2Sym1 arg) => Foo2Sym0KindInference type instance Apply Foo2Sym0 l = Foo2Sym1 l type Foo1Sym2 (t :: a) (t :: b) = Foo1 t t@@ -462,14 +462,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo1Sym1KindInference GHC.Tuple.()) data Foo1Sym1 (l :: a) (l :: TyFun b a)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo1Sym1 l) arg)) (KindOf (Foo1Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo1Sym1 l) arg) ~ KindOf (Foo1Sym2 l arg) => Foo1Sym1KindInference type instance Apply (Foo1Sym1 l) l = Foo1Sym2 l l instance SuppressUnusedWarnings Foo1Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo1Sym0KindInference GHC.Tuple.()) data Foo1Sym0 (l :: TyFun a (TyFun b a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo1Sym0 arg)) (KindOf (Foo1Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo1Sym0 arg) ~ KindOf (Foo1Sym1 arg) => Foo1Sym0KindInference type instance Apply Foo1Sym0 l = Foo1Sym1 l type Foo0Sym2 (t :: a) (t :: b) = Foo0 t t@@ -477,14 +477,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo0Sym1KindInference GHC.Tuple.()) data Foo0Sym1 (l :: a) (l :: TyFun b a)- = forall arg. (GHC.Types.~) (KindOf (Apply (Foo0Sym1 l) arg)) (KindOf (Foo0Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Foo0Sym1 l) arg) ~ KindOf (Foo0Sym2 l arg) => Foo0Sym1KindInference type instance Apply (Foo0Sym1 l) l = Foo0Sym2 l l instance SuppressUnusedWarnings Foo0Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo0Sym0KindInference GHC.Tuple.()) data Foo0Sym0 (l :: TyFun a (TyFun b a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo0Sym0 arg)) (KindOf (Foo0Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo0Sym0 arg) ~ KindOf (Foo0Sym1 arg) => Foo0Sym0KindInference type instance Apply Foo0Sym0 l = Foo0Sym1 l type family Foo8 (a :: Foo a b) :: a where@@ -531,8 +531,7 @@ Sing t -> Sing t -> Sing (Apply (Apply Foo0Sym0 t) t) sFoo8 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo8Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo8Sym0 x) lambda x = applySing (singFun1@@ -559,7 +558,7 @@ sFoo7 sX sY = let lambda ::- forall x y. ((GHC.Types.~) t x, (GHC.Types.~) t y) =>+ forall x y. (t ~ x, t ~ y) => Sing x -> Sing y -> Sing (Apply (Apply Foo7Sym0 x) y) lambda x y = applySing@@ -588,7 +587,7 @@ sFoo6 sA sB = let lambda ::- forall a b. ((GHC.Types.~) t a, (GHC.Types.~) t b) =>+ forall a b. (t ~ a, t ~ b) => Sing a -> Sing b -> Sing (Apply (Apply Foo6Sym0 a) b) lambda a b = applySing@@ -626,7 +625,7 @@ sFoo5 sX sY = let lambda ::- forall x y. ((GHC.Types.~) t x, (GHC.Types.~) t y) =>+ forall x y. (t ~ x, t ~ y) => Sing x -> Sing y -> Sing (Apply (Apply Foo5Sym0 x) y) lambda x y = applySing@@ -644,9 +643,7 @@ sFoo4 sX sY sZ = let lambda ::- forall x y z. ((GHC.Types.~) t x,- (GHC.Types.~) t y,- (GHC.Types.~) t z) =>+ forall x y z. (t ~ x, t ~ y, t ~ z) => Sing x -> Sing y -> Sing z -> Sing (Apply (Apply (Apply Foo4Sym0 x) y) z) lambda x y z@@ -683,8 +680,7 @@ in lambda sX sY sZ sFoo3 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo3Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo3Sym0 x) lambda x = applySing (singFun1@@ -700,7 +696,7 @@ sFoo2 sX sY = let lambda ::- forall x y. ((GHC.Types.~) t x, (GHC.Types.~) t y) =>+ forall x y. (t ~ x, t ~ y) => Sing x -> Sing y -> Sing (Apply (Apply Foo2Sym0 x) y) lambda x y = applySing@@ -726,8 +722,7 @@ sFoo1 sX sA_0123456789 = let lambda ::- forall x a_0123456789. ((GHC.Types.~) t x,- (GHC.Types.~) t a_0123456789) =>+ forall x a_0123456789. (t ~ x, t ~ a_0123456789) => Sing x -> Sing a_0123456789 -> Sing (Apply (Apply Foo1Sym0 x) a_0123456789)@@ -756,8 +751,8 @@ sFoo0 sA_0123456789 sA_0123456789 = let lambda ::- forall a_0123456789 a_0123456789. ((GHC.Types.~) t a_0123456789,- (GHC.Types.~) t a_0123456789) =>+ forall a_0123456789 a_0123456789. (t ~ a_0123456789,+ t ~ a_0123456789) => Sing a_0123456789 -> Sing a_0123456789 -> Sing (Apply (Apply Foo0Sym0 a_0123456789) a_0123456789)@@ -780,8 +775,7 @@ a_0123456789 in lambda sA_0123456789 sA_0123456789 data instance Sing (z :: Foo a b)- = forall (n :: a) (n :: b). (GHC.Types.~) z (Foo n n) =>- SFoo (Sing n) (Sing n)+ = forall (n :: a) (n :: b). z ~ Foo n n => SFoo (Sing n) (Sing n) type SFoo (z :: Foo a b) = Sing z instance (SingKind (KProxy :: KProxy a), SingKind (KProxy :: KProxy b)) =>
tests/compile-and-dump/Singletons/LambdasComprehensive.ghc78.template view
@@ -20,7 +20,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type BarSym0 = Bar
tests/compile-and-dump/Singletons/LetStatements.ghc78.template view
@@ -199,7 +199,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789YSym0KindInference GHC.Tuple.()) data Let_0123456789YSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789YSym0 arg)) (KindOf (Let_0123456789YSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789YSym0 arg) ~ KindOf (Let_0123456789YSym1 arg) => Let_0123456789YSym0KindInference type instance Apply Let_0123456789YSym0 l = Let_0123456789YSym1 l type Let_0123456789ZSym1 t = Let_0123456789Z t@@ -207,7 +207,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789ZSym0KindInference GHC.Tuple.()) data Let_0123456789ZSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789ZSym0 arg)) (KindOf (Let_0123456789ZSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789ZSym0 arg) ~ KindOf (Let_0123456789ZSym1 arg) => Let_0123456789ZSym0KindInference type instance Apply Let_0123456789ZSym0 l = Let_0123456789ZSym1 l type Let_0123456789X_0123456789Sym1 t =@@ -218,7 +218,7 @@ (GHC.Tuple.(,) Let_0123456789X_0123456789Sym0KindInference GHC.Tuple.()) data Let_0123456789X_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789X_0123456789Sym0 arg)) (KindOf (Let_0123456789X_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789X_0123456789Sym0 arg) ~ KindOf (Let_0123456789X_0123456789Sym1 arg) => Let_0123456789X_0123456789Sym0KindInference type instance Apply Let_0123456789X_0123456789Sym0 l = Let_0123456789X_0123456789Sym1 l type Let_0123456789Y x =@@ -233,7 +233,7 @@ = snd (GHC.Tuple.(,) Let_0123456789BarSym0KindInference GHC.Tuple.()) data Let_0123456789BarSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789BarSym0 arg)) (KindOf (Let_0123456789BarSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789BarSym0 arg) ~ KindOf (Let_0123456789BarSym1 arg) => Let_0123456789BarSym0KindInference type instance Apply Let_0123456789BarSym0 l = Let_0123456789BarSym1 l type Let_0123456789Bar x = (x :: a)@@ -244,7 +244,7 @@ = snd (GHC.Tuple.(,) Let_0123456789:+Sym2KindInference GHC.Tuple.()) data Let_0123456789:+Sym2 l (l :: Nat) (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789:+Sym2 l l) arg)) (KindOf (Let_0123456789:+Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789:+Sym2 l l) arg) ~ KindOf (Let_0123456789:+Sym3 l l arg) => Let_0123456789:+Sym2KindInference type instance Apply (Let_0123456789:+Sym2 l l) l = Let_0123456789:+Sym3 l l l instance SuppressUnusedWarnings Let_0123456789:+Sym1 where@@ -252,7 +252,7 @@ = snd (GHC.Tuple.(,) Let_0123456789:+Sym1KindInference GHC.Tuple.()) data Let_0123456789:+Sym1 l (l :: TyFun Nat (TyFun Nat Nat -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789:+Sym1 l) arg)) (KindOf (Let_0123456789:+Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789:+Sym1 l) arg) ~ KindOf (Let_0123456789:+Sym2 l arg) => Let_0123456789:+Sym1KindInference type instance Apply (Let_0123456789:+Sym1 l) l = Let_0123456789:+Sym2 l l instance SuppressUnusedWarnings Let_0123456789:+Sym0 where@@ -260,7 +260,7 @@ = snd (GHC.Tuple.(,) Let_0123456789:+Sym0KindInference GHC.Tuple.()) data Let_0123456789:+Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789:+Sym0 arg)) (KindOf (Let_0123456789:+Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789:+Sym0 arg) ~ KindOf (Let_0123456789:+Sym1 arg) => Let_0123456789:+Sym0KindInference type instance Apply Let_0123456789:+Sym0 l = Let_0123456789:+Sym1 l type family Let_0123456789:+ x (a :: Nat) (a :: Nat) :: Nat where@@ -271,7 +271,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789ZSym0KindInference GHC.Tuple.()) data Let_0123456789ZSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789ZSym0 arg)) (KindOf (Let_0123456789ZSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789ZSym0 arg) ~ KindOf (Let_0123456789ZSym1 arg) => Let_0123456789ZSym0KindInference type instance Apply Let_0123456789ZSym0 l = Let_0123456789ZSym1 l type Let_0123456789:+Sym3 t (t :: Nat) (t :: Nat) =@@ -281,7 +281,7 @@ = snd (GHC.Tuple.(,) Let_0123456789:+Sym2KindInference GHC.Tuple.()) data Let_0123456789:+Sym2 l (l :: Nat) (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789:+Sym2 l l) arg)) (KindOf (Let_0123456789:+Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789:+Sym2 l l) arg) ~ KindOf (Let_0123456789:+Sym3 l l arg) => Let_0123456789:+Sym2KindInference type instance Apply (Let_0123456789:+Sym2 l l) l = Let_0123456789:+Sym3 l l l instance SuppressUnusedWarnings Let_0123456789:+Sym1 where@@ -289,7 +289,7 @@ = snd (GHC.Tuple.(,) Let_0123456789:+Sym1KindInference GHC.Tuple.()) data Let_0123456789:+Sym1 l (l :: TyFun Nat (TyFun Nat Nat -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789:+Sym1 l) arg)) (KindOf (Let_0123456789:+Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789:+Sym1 l) arg) ~ KindOf (Let_0123456789:+Sym2 l arg) => Let_0123456789:+Sym1KindInference type instance Apply (Let_0123456789:+Sym1 l) l = Let_0123456789:+Sym2 l l instance SuppressUnusedWarnings Let_0123456789:+Sym0 where@@ -297,7 +297,7 @@ = snd (GHC.Tuple.(,) Let_0123456789:+Sym0KindInference GHC.Tuple.()) data Let_0123456789:+Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789:+Sym0 arg)) (KindOf (Let_0123456789:+Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789:+Sym0 arg) ~ KindOf (Let_0123456789:+Sym1 arg) => Let_0123456789:+Sym0KindInference type instance Apply Let_0123456789:+Sym0 l = Let_0123456789:+Sym1 l type Let_0123456789Z x = (x :: Nat)@@ -311,7 +311,7 @@ = snd (GHC.Tuple.(,) Let_0123456789:+Sym2KindInference GHC.Tuple.()) data Let_0123456789:+Sym2 l (l :: Nat) (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789:+Sym2 l l) arg)) (KindOf (Let_0123456789:+Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789:+Sym2 l l) arg) ~ KindOf (Let_0123456789:+Sym3 l l arg) => Let_0123456789:+Sym2KindInference type instance Apply (Let_0123456789:+Sym2 l l) l = Let_0123456789:+Sym3 l l l instance SuppressUnusedWarnings Let_0123456789:+Sym1 where@@ -319,7 +319,7 @@ = snd (GHC.Tuple.(,) Let_0123456789:+Sym1KindInference GHC.Tuple.()) data Let_0123456789:+Sym1 l (l :: TyFun Nat (TyFun Nat Nat -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789:+Sym1 l) arg)) (KindOf (Let_0123456789:+Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789:+Sym1 l) arg) ~ KindOf (Let_0123456789:+Sym2 l arg) => Let_0123456789:+Sym1KindInference type instance Apply (Let_0123456789:+Sym1 l) l = Let_0123456789:+Sym2 l l instance SuppressUnusedWarnings Let_0123456789:+Sym0 where@@ -327,7 +327,7 @@ = snd (GHC.Tuple.(,) Let_0123456789:+Sym0KindInference GHC.Tuple.()) data Let_0123456789:+Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789:+Sym0 arg)) (KindOf (Let_0123456789:+Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789:+Sym0 arg) ~ KindOf (Let_0123456789:+Sym1 arg) => Let_0123456789:+Sym0KindInference type instance Apply Let_0123456789:+Sym0 l = Let_0123456789:+Sym1 l type family Let_0123456789:+ x (a :: Nat) (a :: Nat) :: Nat where@@ -341,7 +341,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -349,7 +349,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -357,7 +357,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type Let_0123456789ZSym2 t (t :: Nat) = Let_0123456789Z t t@@ -365,14 +365,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789ZSym1KindInference GHC.Tuple.()) data Let_0123456789ZSym1 l (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789ZSym1 l) arg)) (KindOf (Let_0123456789ZSym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789ZSym1 l) arg) ~ KindOf (Let_0123456789ZSym2 l arg) => Let_0123456789ZSym1KindInference type instance Apply (Let_0123456789ZSym1 l) l = Let_0123456789ZSym2 l l instance SuppressUnusedWarnings Let_0123456789ZSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789ZSym0KindInference GHC.Tuple.()) data Let_0123456789ZSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789ZSym0 arg)) (KindOf (Let_0123456789ZSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789ZSym0 arg) ~ KindOf (Let_0123456789ZSym1 arg) => Let_0123456789ZSym0KindInference type instance Apply Let_0123456789ZSym0 l = Let_0123456789ZSym1 l type family Let_0123456789Z x (a :: Nat) :: Nat where@@ -385,7 +385,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -393,7 +393,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type Let_0123456789ZSym1 t = Let_0123456789Z t@@ -401,7 +401,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789ZSym0KindInference GHC.Tuple.()) data Let_0123456789ZSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789ZSym0 arg)) (KindOf (Let_0123456789ZSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789ZSym0 arg) ~ KindOf (Let_0123456789ZSym1 arg) => Let_0123456789ZSym0KindInference type instance Apply Let_0123456789ZSym0 l = Let_0123456789ZSym1 l type Let_0123456789Z x =@@ -411,7 +411,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789XSym0KindInference GHC.Tuple.()) data Let_0123456789XSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789XSym0 arg)) (KindOf (Let_0123456789XSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789XSym0 arg) ~ KindOf (Let_0123456789XSym1 arg) => Let_0123456789XSym0KindInference type instance Apply Let_0123456789XSym0 l = Let_0123456789XSym1 l type Let_0123456789X x = (ZeroSym0 :: Nat)@@ -420,14 +420,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789FSym1KindInference GHC.Tuple.()) data Let_0123456789FSym1 l (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789FSym1 l) arg)) (KindOf (Let_0123456789FSym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789FSym1 l) arg) ~ KindOf (Let_0123456789FSym2 l arg) => Let_0123456789FSym1KindInference type instance Apply (Let_0123456789FSym1 l) l = Let_0123456789FSym2 l l instance SuppressUnusedWarnings Let_0123456789FSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789FSym0KindInference GHC.Tuple.()) data Let_0123456789FSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789FSym0 arg)) (KindOf (Let_0123456789FSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789FSym0 arg) ~ KindOf (Let_0123456789FSym1 arg) => Let_0123456789FSym0KindInference type instance Apply Let_0123456789FSym0 l = Let_0123456789FSym1 l type family Let_0123456789F x (a :: Nat) :: Nat where@@ -437,7 +437,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789ZSym0KindInference GHC.Tuple.()) data Let_0123456789ZSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789ZSym0 arg)) (KindOf (Let_0123456789ZSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789ZSym0 arg) ~ KindOf (Let_0123456789ZSym1 arg) => Let_0123456789ZSym0KindInference type instance Apply Let_0123456789ZSym0 l = Let_0123456789ZSym1 l type Let_0123456789Z x = (Apply (Let_0123456789FSym1 x) x :: Nat)@@ -446,14 +446,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789ZSym1KindInference GHC.Tuple.()) data Let_0123456789ZSym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789ZSym1 l) arg)) (KindOf (Let_0123456789ZSym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789ZSym1 l) arg) ~ KindOf (Let_0123456789ZSym2 l arg) => Let_0123456789ZSym1KindInference type instance Apply (Let_0123456789ZSym1 l) l = Let_0123456789ZSym2 l l instance SuppressUnusedWarnings Let_0123456789ZSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789ZSym0KindInference GHC.Tuple.()) data Let_0123456789ZSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789ZSym0 arg)) (KindOf (Let_0123456789ZSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789ZSym0 arg) ~ KindOf (Let_0123456789ZSym1 arg) => Let_0123456789ZSym0KindInference type instance Apply Let_0123456789ZSym0 l = Let_0123456789ZSym1 l type Let_0123456789Z x y = (Apply SuccSym0 y :: Nat)@@ -462,14 +462,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789FSym1KindInference GHC.Tuple.()) data Let_0123456789FSym1 l (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789FSym1 l) arg)) (KindOf (Let_0123456789FSym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789FSym1 l) arg) ~ KindOf (Let_0123456789FSym2 l arg) => Let_0123456789FSym1KindInference type instance Apply (Let_0123456789FSym1 l) l = Let_0123456789FSym2 l l instance SuppressUnusedWarnings Let_0123456789FSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789FSym0KindInference GHC.Tuple.()) data Let_0123456789FSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789FSym0 arg)) (KindOf (Let_0123456789FSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789FSym0 arg) ~ KindOf (Let_0123456789FSym1 arg) => Let_0123456789FSym0KindInference type instance Apply Let_0123456789FSym0 l = Let_0123456789FSym1 l type family Let_0123456789F x (a :: Nat) :: Nat where@@ -479,14 +479,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789FSym1KindInference GHC.Tuple.()) data Let_0123456789FSym1 l (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789FSym1 l) arg)) (KindOf (Let_0123456789FSym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789FSym1 l) arg) ~ KindOf (Let_0123456789FSym2 l arg) => Let_0123456789FSym1KindInference type instance Apply (Let_0123456789FSym1 l) l = Let_0123456789FSym2 l l instance SuppressUnusedWarnings Let_0123456789FSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789FSym0KindInference GHC.Tuple.()) data Let_0123456789FSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789FSym0 arg)) (KindOf (Let_0123456789FSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789FSym0 arg) ~ KindOf (Let_0123456789FSym1 arg) => Let_0123456789FSym0KindInference type instance Apply Let_0123456789FSym0 l = Let_0123456789FSym1 l type family Let_0123456789F x (a :: Nat) :: Nat where@@ -496,7 +496,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789YSym0KindInference GHC.Tuple.()) data Let_0123456789YSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789YSym0 arg)) (KindOf (Let_0123456789YSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789YSym0 arg) ~ KindOf (Let_0123456789YSym1 arg) => Let_0123456789YSym0KindInference type instance Apply Let_0123456789YSym0 l = Let_0123456789YSym1 l type Let_0123456789Y x = (Apply SuccSym0 x :: Nat)@@ -509,7 +509,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789YSym0KindInference GHC.Tuple.()) data Let_0123456789YSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789YSym0 arg)) (KindOf (Let_0123456789YSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789YSym0 arg) ~ KindOf (Let_0123456789YSym1 arg) => Let_0123456789YSym0KindInference type instance Apply Let_0123456789YSym0 l = Let_0123456789YSym1 l type Let_0123456789Y x = (Apply SuccSym0 ZeroSym0 :: Nat)@@ -518,7 +518,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo14Sym0KindInference GHC.Tuple.()) data Foo14Sym0 (l :: TyFun Nat (GHC.Tuple.(,) Nat Nat))- = forall arg. (GHC.Types.~) (KindOf (Apply Foo14Sym0 arg)) (KindOf (Foo14Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo14Sym0 arg) ~ KindOf (Foo14Sym1 arg) => Foo14Sym0KindInference type instance Apply Foo14Sym0 l = Foo14Sym1 l type Foo13_Sym1 (t :: a) = Foo13_ t@@ -526,7 +526,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo13_Sym0KindInference GHC.Tuple.()) data Foo13_Sym0 (l :: TyFun a a)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo13_Sym0 arg)) (KindOf (Foo13_Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo13_Sym0 arg) ~ KindOf (Foo13_Sym1 arg) => Foo13_Sym0KindInference type instance Apply Foo13_Sym0 l = Foo13_Sym1 l type Foo13Sym1 (t :: a) = Foo13 t@@ -534,7 +534,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo13Sym0KindInference GHC.Tuple.()) data Foo13Sym0 (l :: TyFun a a)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo13Sym0 arg)) (KindOf (Foo13Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo13Sym0 arg) ~ KindOf (Foo13Sym1 arg) => Foo13Sym0KindInference type instance Apply Foo13Sym0 l = Foo13Sym1 l type Foo12Sym1 (t :: Nat) = Foo12 t@@ -542,7 +542,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo12Sym0KindInference GHC.Tuple.()) data Foo12Sym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo12Sym0 arg)) (KindOf (Foo12Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo12Sym0 arg) ~ KindOf (Foo12Sym1 arg) => Foo12Sym0KindInference type instance Apply Foo12Sym0 l = Foo12Sym1 l type Foo11Sym1 (t :: Nat) = Foo11 t@@ -550,7 +550,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo11Sym0KindInference GHC.Tuple.()) data Foo11Sym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo11Sym0 arg)) (KindOf (Foo11Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo11Sym0 arg) ~ KindOf (Foo11Sym1 arg) => Foo11Sym0KindInference type instance Apply Foo11Sym0 l = Foo11Sym1 l type Foo10Sym1 (t :: Nat) = Foo10 t@@ -558,7 +558,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo10Sym0KindInference GHC.Tuple.()) data Foo10Sym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo10Sym0 arg)) (KindOf (Foo10Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo10Sym0 arg) ~ KindOf (Foo10Sym1 arg) => Foo10Sym0KindInference type instance Apply Foo10Sym0 l = Foo10Sym1 l type Foo9Sym1 (t :: Nat) = Foo9 t@@ -566,7 +566,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo9Sym0KindInference GHC.Tuple.()) data Foo9Sym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo9Sym0 arg)) (KindOf (Foo9Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo9Sym0 arg) ~ KindOf (Foo9Sym1 arg) => Foo9Sym0KindInference type instance Apply Foo9Sym0 l = Foo9Sym1 l type Foo8Sym1 (t :: Nat) = Foo8 t@@ -574,7 +574,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo8Sym0KindInference GHC.Tuple.()) data Foo8Sym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo8Sym0 arg)) (KindOf (Foo8Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo8Sym0 arg) ~ KindOf (Foo8Sym1 arg) => Foo8Sym0KindInference type instance Apply Foo8Sym0 l = Foo8Sym1 l type Foo7Sym1 (t :: Nat) = Foo7 t@@ -582,7 +582,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo7Sym0KindInference GHC.Tuple.()) data Foo7Sym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo7Sym0 arg)) (KindOf (Foo7Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo7Sym0 arg) ~ KindOf (Foo7Sym1 arg) => Foo7Sym0KindInference type instance Apply Foo7Sym0 l = Foo7Sym1 l type Foo6Sym1 (t :: Nat) = Foo6 t@@ -590,7 +590,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo6Sym0KindInference GHC.Tuple.()) data Foo6Sym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo6Sym0 arg)) (KindOf (Foo6Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo6Sym0 arg) ~ KindOf (Foo6Sym1 arg) => Foo6Sym0KindInference type instance Apply Foo6Sym0 l = Foo6Sym1 l type Foo5Sym1 (t :: Nat) = Foo5 t@@ -598,7 +598,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo5Sym0KindInference GHC.Tuple.()) data Foo5Sym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo5Sym0 arg)) (KindOf (Foo5Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo5Sym0 arg) ~ KindOf (Foo5Sym1 arg) => Foo5Sym0KindInference type instance Apply Foo5Sym0 l = Foo5Sym1 l type Foo4Sym1 (t :: Nat) = Foo4 t@@ -606,7 +606,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo4Sym0KindInference GHC.Tuple.()) data Foo4Sym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo4Sym0 arg)) (KindOf (Foo4Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo4Sym0 arg) ~ KindOf (Foo4Sym1 arg) => Foo4Sym0KindInference type instance Apply Foo4Sym0 l = Foo4Sym1 l type Foo3Sym1 (t :: Nat) = Foo3 t@@ -614,7 +614,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo3Sym0KindInference GHC.Tuple.()) data Foo3Sym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo3Sym0 arg)) (KindOf (Foo3Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo3Sym0 arg) ~ KindOf (Foo3Sym1 arg) => Foo3Sym0KindInference type instance Apply Foo3Sym0 l = Foo3Sym1 l type Foo2Sym0 = Foo2@@ -623,7 +623,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo1Sym0KindInference GHC.Tuple.()) data Foo1Sym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo1Sym0 arg)) (KindOf (Foo1Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo1Sym0 arg) ~ KindOf (Foo1Sym1 arg) => Foo1Sym0KindInference type instance Apply Foo1Sym0 l = Foo1Sym1 l type family Foo14 (a :: Nat) :: GHC.Tuple.(,) Nat Nat where@@ -672,8 +672,7 @@ sFoo1 :: forall (t :: Nat). Sing t -> Sing (Apply Foo1Sym0 t) sFoo14 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo14Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo14Sym0 x) lambda x = let sY :: Sing (Let_0123456789YSym1 x)@@ -711,14 +710,12 @@ in lambda sX sFoo13_ sY = let- lambda ::- forall y. (GHC.Types.~) t y => Sing y -> Sing (Apply Foo13_Sym0 y)+ lambda :: forall y. t ~ y => Sing y -> Sing (Apply Foo13_Sym0 y) lambda y = y in lambda sY sFoo13 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo13Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo13Sym0 x) lambda x = let sBar :: Sing (Let_0123456789BarSym1 x)@@ -727,8 +724,7 @@ in lambda sX sFoo12 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo12Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo12Sym0 x) lambda x = let (%:+) ::@@ -738,15 +734,14 @@ (%:+) SZero sM = let lambda ::- forall m. ((GHC.Types.~) t ZeroSym0, (GHC.Types.~) t m) =>+ forall m. (t ~ ZeroSym0, t ~ m) => Sing m -> Sing (Apply (Apply (Let_0123456789:+Sym1 x) ZeroSym0) m) lambda m = m in lambda sM (%:+) (SSucc sN) sM = let lambda ::- forall n m. ((GHC.Types.~) t (Apply SuccSym0 n),- (GHC.Types.~) t m) =>+ forall n m. (t ~ Apply SuccSym0 n, t ~ m) => Sing n -> Sing m -> Sing (Apply (Apply (Let_0123456789:+Sym1 x) (Apply SuccSym0 n)) m)@@ -768,8 +763,7 @@ in lambda sX sFoo11 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo11Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo11Sym0 x) lambda x = let sZ :: Sing (Let_0123456789ZSym1 x)@@ -781,15 +775,14 @@ (%:+) SZero sM = let lambda ::- forall m. ((GHC.Types.~) t ZeroSym0, (GHC.Types.~) t m) =>+ forall m. (t ~ ZeroSym0, t ~ m) => Sing m -> Sing (Apply (Apply (Let_0123456789:+Sym1 x) ZeroSym0) m) lambda m = m in lambda sM (%:+) (SSucc sN) sM = let lambda ::- forall n m. ((GHC.Types.~) t (Apply SuccSym0 n),- (GHC.Types.~) t m) =>+ forall n m. (t ~ Apply SuccSym0 n, t ~ m) => Sing n -> Sing m -> Sing (Apply (Apply (Let_0123456789:+Sym1 x) (Apply SuccSym0 n)) m)@@ -810,8 +803,7 @@ in lambda sX sFoo10 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo10Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo10Sym0 x) lambda x = let (%:+) ::@@ -821,15 +813,14 @@ (%:+) SZero sM = let lambda ::- forall m. ((GHC.Types.~) t ZeroSym0, (GHC.Types.~) t m) =>+ forall m. (t ~ ZeroSym0, t ~ m) => Sing m -> Sing (Apply (Apply (Let_0123456789:+Sym1 x) ZeroSym0) m) lambda m = m in lambda sM (%:+) (SSucc sN) sM = let lambda ::- forall n m. ((GHC.Types.~) t (Apply SuccSym0 n),- (GHC.Types.~) t m) =>+ forall n m. (t ~ Apply SuccSym0 n, t ~ m) => Sing n -> Sing m -> Sing (Apply (Apply (Let_0123456789:+Sym1 x) (Apply SuccSym0 n)) m)@@ -850,15 +841,14 @@ in lambda sX sFoo9 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo9Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo9Sym0 x) lambda x = let sZ :: forall t. Sing t -> Sing (Apply (Let_0123456789ZSym1 x) t) sZ sA_0123456789 = let lambda ::- forall a_0123456789. (GHC.Types.~) t a_0123456789 =>+ forall a_0123456789. t ~ a_0123456789 => Sing a_0123456789 -> Sing (Apply (Let_0123456789ZSym1 x) a_0123456789) lambda a_0123456789@@ -881,8 +871,7 @@ in lambda sX sFoo8 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo8Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo8Sym0 x) lambda x = let sZ :: Sing (Let_0123456789ZSym1 x)@@ -902,8 +891,7 @@ in lambda sX sFoo7 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo7Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo7Sym0 x) lambda x = let sX :: Sing (Let_0123456789XSym1 x)@@ -912,16 +900,14 @@ in lambda sX sFoo6 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo6Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo6Sym0 x) lambda x = let sF :: forall t. Sing t -> Sing (Apply (Let_0123456789FSym1 x) t) sF sY = let lambda ::- forall y. (GHC.Types.~) t y =>- Sing y -> Sing (Apply (Let_0123456789FSym1 x) y)+ forall y. t ~ y => Sing y -> Sing (Apply (Let_0123456789FSym1 x) y) lambda y = applySing (singFun1 (Proxy :: Proxy SuccSym0) SSucc) y in lambda sY in let@@ -933,16 +919,14 @@ in lambda sX sFoo5 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo5Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo5Sym0 x) lambda x = let sF :: forall t. Sing t -> Sing (Apply (Let_0123456789FSym1 x) t) sF sY = let lambda ::- forall y. (GHC.Types.~) t y =>- Sing y -> Sing (Apply (Let_0123456789FSym1 x) y)+ forall y. t ~ y => Sing y -> Sing (Apply (Let_0123456789FSym1 x) y) lambda y = let sZ :: Sing (Let_0123456789ZSym2 x y)@@ -954,16 +938,14 @@ in lambda sX sFoo4 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo4Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo4Sym0 x) lambda x = let sF :: forall t. Sing t -> Sing (Apply (Let_0123456789FSym1 x) t) sF sY = let lambda ::- forall y. (GHC.Types.~) t y =>- Sing y -> Sing (Apply (Let_0123456789FSym1 x) y)+ forall y. t ~ y => Sing y -> Sing (Apply (Let_0123456789FSym1 x) y) lambda y = applySing (singFun1 (Proxy :: Proxy SuccSym0) SSucc) y in lambda sY in@@ -971,8 +953,7 @@ in lambda sX sFoo3 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo3Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo3Sym0 x) lambda x = let sY :: Sing (Let_0123456789YSym1 x)@@ -988,8 +969,7 @@ in sZ sFoo1 sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply Foo1Sym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply Foo1Sym0 x) lambda x = let sY :: Sing (Let_0123456789YSym1 x)
tests/compile-and-dump/Singletons/Maybe.ghc78.template view
@@ -21,12 +21,12 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) JustSym0KindInference GHC.Tuple.()) data JustSym0 (l :: TyFun a (Maybe a))- = forall arg. (GHC.Types.~) (KindOf (Apply JustSym0 arg)) (KindOf (JustSym1 arg)) =>+ = forall arg. KindOf (Apply JustSym0 arg) ~ KindOf (JustSym1 arg) => JustSym0KindInference type instance Apply JustSym0 l = JustSym1 l data instance Sing (z :: Maybe a)- = (GHC.Types.~) z Nothing => SNothing |- forall (n :: a). (GHC.Types.~) z (Just n) => SJust (Sing n)+ = z ~ Nothing => SNothing |+ forall (n :: a). z ~ Just n => SJust (Sing n) type SMaybe (z :: Maybe a) = Sing z instance SingKind (KProxy :: KProxy a) => SingKind (KProxy :: KProxy (Maybe a)) where
tests/compile-and-dump/Singletons/Nat.ghc78.template view
@@ -35,7 +35,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) SuccSym0KindInference GHC.Tuple.()) data SuccSym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply SuccSym0 arg)) (KindOf (SuccSym1 arg)) =>+ = forall arg. KindOf (Apply SuccSym0 arg) ~ KindOf (SuccSym1 arg) => SuccSym0KindInference type instance Apply SuccSym0 l = SuccSym1 l type PredSym1 (t :: Nat) = Pred t@@ -43,7 +43,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) PredSym0KindInference GHC.Tuple.()) data PredSym0 (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply PredSym0 arg)) (KindOf (PredSym1 arg)) =>+ = forall arg. KindOf (Apply PredSym0 arg) ~ KindOf (PredSym1 arg) => PredSym0KindInference type instance Apply PredSym0 l = PredSym1 l type PlusSym2 (t :: Nat) (t :: Nat) = Plus t t@@ -51,14 +51,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) PlusSym1KindInference GHC.Tuple.()) data PlusSym1 (l :: Nat) (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply (PlusSym1 l) arg)) (KindOf (PlusSym2 l arg)) =>+ = forall arg. KindOf (Apply (PlusSym1 l) arg) ~ KindOf (PlusSym2 l arg) => PlusSym1KindInference type instance Apply (PlusSym1 l) l = PlusSym2 l l instance SuppressUnusedWarnings PlusSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) PlusSym0KindInference GHC.Tuple.()) data PlusSym0 (l :: TyFun Nat (TyFun Nat Nat -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply PlusSym0 arg)) (KindOf (PlusSym1 arg)) =>+ = forall arg. KindOf (Apply PlusSym0 arg) ~ KindOf (PlusSym1 arg) => PlusSym0KindInference type instance Apply PlusSym0 l = PlusSym1 l type family Pred (a :: Nat) :: Nat where@@ -73,29 +73,27 @@ Sing t -> Sing t -> Sing (Apply (Apply PlusSym0 t) t) sPred SZero = let- lambda ::- (GHC.Types.~) t ZeroSym0 => Sing (Apply PredSym0 ZeroSym0)+ lambda :: t ~ ZeroSym0 => Sing (Apply PredSym0 ZeroSym0) lambda = SZero in lambda sPred (SSucc sN) = let lambda ::- forall n. (GHC.Types.~) t (Apply SuccSym0 n) =>+ forall n. t ~ Apply SuccSym0 n => Sing n -> Sing (Apply PredSym0 (Apply SuccSym0 n)) lambda n = n in lambda sN sPlus SZero sM = let lambda ::- forall m. ((GHC.Types.~) t ZeroSym0, (GHC.Types.~) t m) =>+ forall m. (t ~ ZeroSym0, t ~ m) => Sing m -> Sing (Apply (Apply PlusSym0 ZeroSym0) m) lambda m = m in lambda sM sPlus (SSucc sN) sM = let lambda ::- forall n m. ((GHC.Types.~) t (Apply SuccSym0 n),- (GHC.Types.~) t m) =>+ forall n m. (t ~ Apply SuccSym0 n, t ~ m) => Sing n -> Sing m -> Sing (Apply (Apply PlusSym0 (Apply SuccSym0 n)) m) lambda n m@@ -105,8 +103,8 @@ (applySing (singFun2 (Proxy :: Proxy PlusSym0) sPlus) n) m) in lambda sN sM data instance Sing (z :: Nat)- = (GHC.Types.~) z Zero => SZero |- forall (n :: Nat). (GHC.Types.~) z (Succ n) => SSucc (Sing n)+ = 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
tests/compile-and-dump/Singletons/Operators.ghc78.template view
@@ -26,14 +26,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:+:$$###) GHC.Tuple.()) data (:+:$$) (l :: Foo) (l :: TyFun Foo Foo)- = forall arg. (GHC.Types.~) (KindOf (Apply ((:+:$$) l) arg)) (KindOf ((:+:$$$) l arg)) =>+ = forall arg. KindOf (Apply ((:+:$$) l) arg) ~ KindOf ((:+:$$$) l arg) => (:+:$$###) type instance Apply ((:+:$$) l) l = (:+:$$$) l l instance SuppressUnusedWarnings (:+:$) where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:+:$###) GHC.Tuple.()) data (:+:$) (l :: TyFun Foo (TyFun Foo Foo -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (:+:$) arg)) (KindOf ((:+:$$) arg)) =>+ = forall arg. KindOf (Apply (:+:$) arg) ~ KindOf ((:+:$$) arg) => (:+:$###) type instance Apply (:+:$) l = (:+:$$) l type (:+$$$) (t :: Nat) (t :: Nat) = (:+) t t@@ -41,14 +41,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:+$$###) GHC.Tuple.()) data (:+$$) (l :: Nat) (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply ((:+$$) l) arg)) (KindOf ((:+$$$) l arg)) =>+ = forall arg. KindOf (Apply ((:+$$) l) arg) ~ KindOf ((:+$$$) l arg) => (:+$$###) type instance Apply ((:+$$) l) l = (:+$$$) l l instance SuppressUnusedWarnings (:+$) where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:+$###) GHC.Tuple.()) data (:+$) (l :: TyFun Nat (TyFun Nat Nat -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (:+$) arg)) (KindOf ((:+$$) arg)) =>+ = forall arg. KindOf (Apply (:+$) arg) ~ KindOf ((:+$$) arg) => (:+$###) type instance Apply (:+$) l = (:+$$) l type ChildSym1 (t :: Foo) = Child t@@ -56,7 +56,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) ChildSym0KindInference GHC.Tuple.()) data ChildSym0 (l :: TyFun Foo Foo)- = forall arg. (GHC.Types.~) (KindOf (Apply ChildSym0 arg)) (KindOf (ChildSym1 arg)) =>+ = forall arg. KindOf (Apply ChildSym0 arg) ~ KindOf (ChildSym1 arg) => ChildSym0KindInference type instance Apply ChildSym0 l = ChildSym1 l type family (:+) (a :: Nat) (a :: Nat) :: Nat where@@ -72,15 +72,14 @@ (%:+) SZero sM = let lambda ::- forall m. ((GHC.Types.~) t ZeroSym0, (GHC.Types.~) t m) =>+ forall m. (t ~ ZeroSym0, t ~ m) => Sing m -> Sing (Apply (Apply (:+$) ZeroSym0) m) lambda m = m in lambda sM (%:+) (SSucc sN) sM = let lambda ::- forall n m. ((GHC.Types.~) t (Apply SuccSym0 n),- (GHC.Types.~) t m) =>+ forall n m. (t ~ Apply SuccSym0 n, t ~ m) => Sing n -> Sing m -> Sing (Apply (Apply (:+$) (Apply SuccSym0 n)) m) lambda n m = applySing@@ -89,20 +88,19 @@ in lambda sN sM sChild SFLeaf = let- lambda ::- (GHC.Types.~) t FLeafSym0 => Sing (Apply ChildSym0 FLeafSym0)+ lambda :: t ~ FLeafSym0 => Sing (Apply ChildSym0 FLeafSym0) lambda = SFLeaf in lambda sChild ((:%+:) sA _) = let lambda ::- forall a wild. (GHC.Types.~) t (Apply (Apply (:+:$) a) wild) =>+ forall a wild. t ~ Apply (Apply (:+:$) a) wild => Sing a -> Sing (Apply ChildSym0 (Apply (Apply (:+:$) a) wild)) lambda a = a in lambda sA data instance Sing (z :: Foo)- = (GHC.Types.~) z FLeaf => SFLeaf |- forall (n :: Foo) (n :: Foo). (GHC.Types.~) z ((:+:) n n) =>+ = z ~ FLeaf => SFLeaf |+ forall (n :: Foo) (n :: Foo). z ~ (:+:) n n => (:%+:) (Sing n) (Sing n) type SFoo (z :: Foo) = Sing z instance SingKind (KProxy :: KProxy Foo) where
tests/compile-and-dump/Singletons/PatternMatching.ghc78.template view
@@ -22,14 +22,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) PairSym1KindInference GHC.Tuple.()) data PairSym1 (l :: a) (l :: TyFun b (Pair a b))- = forall arg. (GHC.Types.~) (KindOf (Apply (PairSym1 l) arg)) (KindOf (PairSym2 l arg)) =>+ = forall arg. KindOf (Apply (PairSym1 l) arg) ~ KindOf (PairSym2 l arg) => PairSym1KindInference type instance Apply (PairSym1 l) l = PairSym2 l l instance SuppressUnusedWarnings PairSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) PairSym0KindInference GHC.Tuple.()) data PairSym0 (l :: TyFun a (TyFun b (Pair a b) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply PairSym0 arg)) (KindOf (PairSym1 arg)) =>+ = forall arg. KindOf (Apply PairSym0 arg) ~ KindOf (PairSym1 arg) => PairSym0KindInference type instance Apply PairSym0 l = PairSym1 l type AListSym0 = AList@@ -86,8 +86,7 @@ (applySing (applySing (singFun2 (Proxy :: Proxy (:$)) SCons) SZero) SNil) data instance Sing (z :: Pair a b)- = forall (n :: a) (n :: b). (GHC.Types.~) z (Pair n n) =>- SPair (Sing n) (Sing n)+ = forall (n :: a) (n :: b). z ~ Pair n n => SPair (Sing n) (Sing n) type SPair (z :: Pair a b) = Sing z instance (SingKind (KProxy :: KProxy a), SingKind (KProxy :: KProxy b)) =>@@ -132,14 +131,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789TSym1KindInference GHC.Tuple.()) data Let_0123456789TSym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789TSym1 l) arg)) (KindOf (Let_0123456789TSym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789TSym1 l) arg) ~ KindOf (Let_0123456789TSym2 l arg) => Let_0123456789TSym1KindInference type instance Apply (Let_0123456789TSym1 l) l = Let_0123456789TSym2 l l instance SuppressUnusedWarnings Let_0123456789TSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Let_0123456789TSym0KindInference GHC.Tuple.()) data Let_0123456789TSym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789TSym0 arg)) (KindOf (Let_0123456789TSym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789TSym0 arg) ~ KindOf (Let_0123456789TSym1 arg) => Let_0123456789TSym0KindInference type instance Apply Let_0123456789TSym0 l = Let_0123456789TSym1 l type Let_0123456789T x y = Apply (Apply Tuple2Sym0 x) y@@ -151,7 +150,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym1KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Let_0123456789Scrutinee_0123456789Sym1 l) arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym2 l arg) => Let_0123456789Scrutinee_0123456789Sym1KindInference type instance Apply (Let_0123456789Scrutinee_0123456789Sym1 l) l = Let_0123456789Scrutinee_0123456789Sym2 l l instance SuppressUnusedWarnings Let_0123456789Scrutinee_0123456789Sym0 where@@ -160,7 +159,7 @@ (GHC.Tuple.(,) Let_0123456789Scrutinee_0123456789Sym0KindInference GHC.Tuple.()) data Let_0123456789Scrutinee_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg)) (KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Let_0123456789Scrutinee_0123456789Sym0 arg) ~ KindOf (Let_0123456789Scrutinee_0123456789Sym1 arg) => Let_0123456789Scrutinee_0123456789Sym0KindInference type instance Apply Let_0123456789Scrutinee_0123456789Sym0 l = Let_0123456789Scrutinee_0123456789Sym1 l type Let_0123456789Scrutinee_0123456789 x y =@@ -175,7 +174,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym4KindInference GHC.Tuple.()) data Lambda_0123456789Sym4 l l l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym4 l l l l) arg)) (KindOf (Lambda_0123456789Sym5 l l l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym4 l l l l) arg) ~ KindOf (Lambda_0123456789Sym5 l l l l arg) => Lambda_0123456789Sym4KindInference type instance Apply (Lambda_0123456789Sym4 l l l l) l = Lambda_0123456789Sym5 l l l l l instance SuppressUnusedWarnings Lambda_0123456789Sym3 where@@ -183,7 +182,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym3KindInference GHC.Tuple.()) data Lambda_0123456789Sym3 l l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym3 l l l) arg)) (KindOf (Lambda_0123456789Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym3 l l l) arg) ~ KindOf (Lambda_0123456789Sym4 l l l arg) => Lambda_0123456789Sym3KindInference type instance Apply (Lambda_0123456789Sym3 l l l) l = Lambda_0123456789Sym4 l l l l instance SuppressUnusedWarnings Lambda_0123456789Sym2 where@@ -191,7 +190,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -199,7 +198,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -207,7 +206,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Case_0123456789 x y t where@@ -222,7 +221,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym2KindInference GHC.Tuple.()) data Lambda_0123456789Sym2 l l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym2 l l) arg)) (KindOf (Lambda_0123456789Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym2 l l) arg) ~ KindOf (Lambda_0123456789Sym3 l l arg) => Lambda_0123456789Sym2KindInference type instance Apply (Lambda_0123456789Sym2 l l) l = Lambda_0123456789Sym3 l l l instance SuppressUnusedWarnings Lambda_0123456789Sym1 where@@ -230,7 +229,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym1KindInference GHC.Tuple.()) data Lambda_0123456789Sym1 l l- = forall arg. (GHC.Types.~) (KindOf (Apply (Lambda_0123456789Sym1 l) arg)) (KindOf (Lambda_0123456789Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Lambda_0123456789Sym1 l) arg) ~ KindOf (Lambda_0123456789Sym2 l arg) => Lambda_0123456789Sym1KindInference type instance Apply (Lambda_0123456789Sym1 l) l = Lambda_0123456789Sym2 l l instance SuppressUnusedWarnings Lambda_0123456789Sym0 where@@ -238,7 +237,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type family Case_0123456789 t where@@ -266,7 +265,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo2Sym0KindInference GHC.Tuple.()) data Foo2Sym0 (l :: TyFun (GHC.Tuple.(,) a b) a)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo2Sym0 arg)) (KindOf (Foo2Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo2Sym0 arg) ~ KindOf (Foo2Sym1 arg) => Foo2Sym0KindInference type instance Apply Foo2Sym0 l = Foo2Sym1 l type Foo1Sym1 (t :: GHC.Tuple.(,) a b) = Foo1 t@@ -274,7 +273,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Foo1Sym0KindInference GHC.Tuple.()) data Foo1Sym0 (l :: TyFun (GHC.Tuple.(,) a b) a)- = forall arg. (GHC.Types.~) (KindOf (Apply Foo1Sym0 arg)) (KindOf (Foo1Sym1 arg)) =>+ = forall arg. KindOf (Apply Foo1Sym0 arg) ~ KindOf (Foo1Sym1 arg) => Foo1Sym0KindInference type instance Apply Foo1Sym0 l = Foo1Sym1 l type LszSym0 = Lsz@@ -330,7 +329,7 @@ sFoo2 (STuple2 sX sY) = let lambda ::- forall x y. (GHC.Types.~) t (Apply (Apply Tuple2Sym0 x) y) =>+ forall x y. t ~ Apply (Apply Tuple2Sym0 x) y => Sing x -> Sing y -> Sing (Apply Foo2Sym0 (Apply (Apply Tuple2Sym0 x) y)) lambda x y@@ -378,7 +377,7 @@ sFoo1 (STuple2 sX sY) = let lambda ::- forall x y. (GHC.Types.~) t (Apply (Apply Tuple2Sym0 x) y) =>+ forall x y. t ~ Apply (Apply Tuple2Sym0 x) y => Sing x -> Sing y -> Sing (Apply Foo1Sym0 (Apply (Apply Tuple2Sym0 x) y)) lambda x y
tests/compile-and-dump/Singletons/Records.ghc78.template view
@@ -9,7 +9,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Field1Sym0KindInference GHC.Tuple.()) data Field1Sym0 (l :: TyFun (Record a) a)- = forall arg. (GHC.Types.~) (KindOf (Apply Field1Sym0 arg)) (KindOf (Field1Sym1 arg)) =>+ = forall arg. KindOf (Apply Field1Sym0 arg) ~ KindOf (Field1Sym1 arg) => Field1Sym0KindInference type instance Apply Field1Sym0 l = Field1Sym1 l type Field2Sym1 (t :: Record a) = Field2 t@@ -17,7 +17,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Field2Sym0KindInference GHC.Tuple.()) data Field2Sym0 (l :: TyFun (Record a) Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply Field2Sym0 arg)) (KindOf (Field2Sym1 arg)) =>+ = forall arg. KindOf (Apply Field2Sym0 arg) ~ KindOf (Field2Sym1 arg) => Field2Sym0KindInference type instance Apply Field2Sym0 l = Field2Sym1 l type family Field1 (a :: Record a) :: a where@@ -29,18 +29,18 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) MkRecordSym1KindInference GHC.Tuple.()) data MkRecordSym1 (l :: a) (l :: TyFun Bool (Record a))- = forall arg. (GHC.Types.~) (KindOf (Apply (MkRecordSym1 l) arg)) (KindOf (MkRecordSym2 l arg)) =>+ = forall arg. KindOf (Apply (MkRecordSym1 l) arg) ~ KindOf (MkRecordSym2 l arg) => MkRecordSym1KindInference type instance Apply (MkRecordSym1 l) l = MkRecordSym2 l l instance SuppressUnusedWarnings MkRecordSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) MkRecordSym0KindInference GHC.Tuple.()) data MkRecordSym0 (l :: TyFun a (TyFun Bool (Record a) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply MkRecordSym0 arg)) (KindOf (MkRecordSym1 arg)) =>+ = forall arg. KindOf (Apply MkRecordSym0 arg) ~ KindOf (MkRecordSym1 arg) => MkRecordSym0KindInference type instance Apply MkRecordSym0 l = MkRecordSym1 l data instance Sing (z :: Record a)- = forall (n :: a) (n :: Bool). (GHC.Types.~) z (MkRecord n n) =>+ = forall (n :: a) (n :: Bool). z ~ MkRecord n n => SMkRecord {sField1 :: Sing n, sField2 :: Sing n} type SRecord (z :: Record a) = Sing z instance SingKind (KProxy :: KProxy a) =>
tests/compile-and-dump/Singletons/ReturnFunc.ghc78.template view
@@ -19,7 +19,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) IdSym0KindInference GHC.Tuple.()) data IdSym0 (l :: TyFun a a)- = forall arg. (GHC.Types.~) (KindOf (Apply IdSym0 arg)) (KindOf (IdSym1 arg)) =>+ = forall arg. KindOf (Apply IdSym0 arg) ~ KindOf (IdSym1 arg) => IdSym0KindInference type instance Apply IdSym0 l = IdSym1 l type IdFooSym2 (t :: c) (t :: a) = IdFoo t t@@ -27,14 +27,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) IdFooSym1KindInference GHC.Tuple.()) data IdFooSym1 (l :: c) (l :: TyFun a a)- = forall arg. (GHC.Types.~) (KindOf (Apply (IdFooSym1 l) arg)) (KindOf (IdFooSym2 l arg)) =>+ = forall arg. KindOf (Apply (IdFooSym1 l) arg) ~ KindOf (IdFooSym2 l arg) => IdFooSym1KindInference type instance Apply (IdFooSym1 l) l = IdFooSym2 l l instance SuppressUnusedWarnings IdFooSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) IdFooSym0KindInference GHC.Tuple.()) data IdFooSym0 (l :: TyFun c (TyFun a a -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply IdFooSym0 arg)) (KindOf (IdFooSym1 arg)) =>+ = forall arg. KindOf (Apply IdFooSym0 arg) ~ KindOf (IdFooSym1 arg) => IdFooSym0KindInference type instance Apply IdFooSym0 l = IdFooSym1 l type ReturnFuncSym2 (t :: Nat) (t :: Nat) = ReturnFunc t t@@ -42,14 +42,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) ReturnFuncSym1KindInference GHC.Tuple.()) data ReturnFuncSym1 (l :: Nat) (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply (ReturnFuncSym1 l) arg)) (KindOf (ReturnFuncSym2 l arg)) =>+ = forall arg. KindOf (Apply (ReturnFuncSym1 l) arg) ~ KindOf (ReturnFuncSym2 l arg) => ReturnFuncSym1KindInference type instance Apply (ReturnFuncSym1 l) l = ReturnFuncSym2 l l instance SuppressUnusedWarnings ReturnFuncSym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) ReturnFuncSym0KindInference GHC.Tuple.()) data ReturnFuncSym0 (l :: TyFun Nat (TyFun Nat Nat -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply ReturnFuncSym0 arg)) (KindOf (ReturnFuncSym1 arg)) =>+ = forall arg. KindOf (Apply ReturnFuncSym0 arg) ~ KindOf (ReturnFuncSym1 arg) => ReturnFuncSym0KindInference type instance Apply ReturnFuncSym0 l = ReturnFuncSym1 l type family Id (a :: a) :: a where@@ -67,15 +67,13 @@ Sing t -> Sing t -> Sing (Apply (Apply ReturnFuncSym0 t) t) sId sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply IdSym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply IdSym0 x) lambda x = x in lambda sX sIdFoo _ sA_0123456789 = let lambda ::- forall a_0123456789 wild. ((GHC.Types.~) t wild,- (GHC.Types.~) t a_0123456789) =>+ forall a_0123456789 wild. (t ~ wild, t ~ a_0123456789) => Sing a_0123456789 -> Sing (Apply (Apply IdFooSym0 wild) a_0123456789) lambda a_0123456789@@ -84,8 +82,7 @@ sReturnFunc _ sA_0123456789 = let lambda ::- forall a_0123456789 wild. ((GHC.Types.~) t wild,- (GHC.Types.~) t a_0123456789) =>+ forall a_0123456789 wild. (t ~ wild, t ~ a_0123456789) => Sing a_0123456789 -> Sing (Apply (Apply ReturnFuncSym0 wild) a_0123456789) lambda a_0123456789
tests/compile-and-dump/Singletons/Sections.ghc78.template view
@@ -28,7 +28,7 @@ = snd (GHC.Tuple.(,) Lambda_0123456789Sym0KindInference GHC.Tuple.()) data Lambda_0123456789Sym0 l- = forall arg. (GHC.Types.~) (KindOf (Apply Lambda_0123456789Sym0 arg)) (KindOf (Lambda_0123456789Sym1 arg)) =>+ = forall arg. KindOf (Apply Lambda_0123456789Sym0 arg) ~ KindOf (Lambda_0123456789Sym1 arg) => Lambda_0123456789Sym0KindInference type instance Apply Lambda_0123456789Sym0 l = Lambda_0123456789Sym1 l type (:+$$$) (t :: Nat) (t :: Nat) = (:+) t t@@ -36,14 +36,14 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:+$$###) GHC.Tuple.()) data (:+$$) (l :: Nat) (l :: TyFun Nat Nat)- = forall arg. (GHC.Types.~) (KindOf (Apply ((:+$$) l) arg)) (KindOf ((:+$$$) l arg)) =>+ = forall arg. KindOf (Apply ((:+$$) l) arg) ~ KindOf ((:+$$$) l arg) => (:+$$###) type instance Apply ((:+$$) l) l = (:+$$$) l l instance SuppressUnusedWarnings (:+$) where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) (:+$###) GHC.Tuple.()) data (:+$) (l :: TyFun Nat (TyFun Nat Nat -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (:+$) arg)) (KindOf ((:+$$) arg)) =>+ = forall arg. KindOf (Apply (:+$) arg) ~ KindOf ((:+$$) arg) => (:+$###) type instance Apply (:+$) l = (:+$$) l type Foo1Sym0 = Foo1@@ -67,15 +67,14 @@ (%:+) SZero sM = let lambda ::- forall m. ((GHC.Types.~) t ZeroSym0, (GHC.Types.~) t m) =>+ forall m. (t ~ ZeroSym0, t ~ m) => Sing m -> Sing (Apply (Apply (:+$) ZeroSym0) m) lambda m = m in lambda sM (%:+) (SSucc sN) sM = let lambda ::- forall n m. ((GHC.Types.~) t (Apply SuccSym0 n),- (GHC.Types.~) t m) =>+ forall n m. (t ~ Apply SuccSym0 n, t ~ m) => Sing n -> Sing m -> Sing (Apply (Apply (:+$) (Apply SuccSym0 n)) m) lambda n m = applySing
tests/compile-and-dump/Singletons/Star.ghc78.template view
@@ -52,7 +52,7 @@ Data.Singletons.SuppressUnusedWarnings.suppressUnusedWarnings _ = snd (GHC.Tuple.(,) MaybeSym0KindInference GHC.Tuple.()) data MaybeSym0 (l :: TyFun * *)- = forall arg. (GHC.Types.~) (KindOf (Apply MaybeSym0 arg)) (KindOf (MaybeSym1 arg)) =>+ = forall arg. KindOf (Apply MaybeSym0 arg) ~ KindOf (MaybeSym1 arg) => MaybeSym0KindInference type instance Apply MaybeSym0 l = MaybeSym1 l type VecSym2 (t :: *) (t :: Nat) = Vec t t@@ -60,23 +60,22 @@ Data.Singletons.SuppressUnusedWarnings.suppressUnusedWarnings _ = snd (GHC.Tuple.(,) VecSym1KindInference GHC.Tuple.()) data VecSym1 (l :: *) (l :: TyFun Nat *)- = forall arg. (GHC.Types.~) (KindOf (Apply (VecSym1 l) arg)) (KindOf (VecSym2 l arg)) =>+ = forall arg. KindOf (Apply (VecSym1 l) arg) ~ KindOf (VecSym2 l arg) => VecSym1KindInference type instance Apply (VecSym1 l) l = VecSym2 l l instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings VecSym0 where Data.Singletons.SuppressUnusedWarnings.suppressUnusedWarnings _ = snd (GHC.Tuple.(,) VecSym0KindInference GHC.Tuple.()) data VecSym0 (l :: TyFun * (TyFun Nat * -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply VecSym0 arg)) (KindOf (VecSym1 arg)) =>+ = forall arg. KindOf (Apply VecSym0 arg) ~ KindOf (VecSym1 arg) => VecSym0KindInference type instance Apply VecSym0 l = VecSym1 l data instance Sing (z :: *)- = (GHC.Types.~) z Nat => SNat |- (GHC.Types.~) z Int => SInt |- (GHC.Types.~) z String => SString |- forall (n :: *). (GHC.Types.~) z (Maybe n) => SMaybe (Sing n) |- forall (n :: *) (n :: Nat). (GHC.Types.~) z (Vec n n) =>- SVec (Sing n) (Sing n)+ = z ~ Nat => SNat |+ z ~ Int => SInt |+ z ~ String => SString |+ forall (n :: *). z ~ Maybe n => SMaybe (Sing n) |+ forall (n :: *) (n :: Nat). z ~ Vec n n => SVec (Sing n) (Sing n) type SRep (z :: *) = Sing z instance SingKind (KProxy :: KProxy *) where type DemoteRep (KProxy :: KProxy *) = Rep
tests/compile-and-dump/Singletons/T29.ghc78.template view
@@ -23,7 +23,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) BanSym0KindInference GHC.Tuple.()) data BanSym0 (l :: TyFun Bool Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply BanSym0 arg)) (KindOf (BanSym1 arg)) =>+ = forall arg. KindOf (Apply BanSym0 arg) ~ KindOf (BanSym1 arg) => BanSym0KindInference type instance Apply BanSym0 l = BanSym1 l type BazSym1 (t :: Bool) = Baz t@@ -31,7 +31,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) BazSym0KindInference GHC.Tuple.()) data BazSym0 (l :: TyFun Bool Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply BazSym0 arg)) (KindOf (BazSym1 arg)) =>+ = forall arg. KindOf (Apply BazSym0 arg) ~ KindOf (BazSym1 arg) => BazSym0KindInference type instance Apply BazSym0 l = BazSym1 l type BarSym1 (t :: Bool) = Bar t@@ -39,7 +39,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) BarSym0KindInference GHC.Tuple.()) data BarSym0 (l :: TyFun Bool Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply BarSym0 arg)) (KindOf (BarSym1 arg)) =>+ = forall arg. KindOf (Apply BarSym0 arg) ~ KindOf (BarSym1 arg) => BarSym0KindInference type instance Apply BarSym0 l = BarSym1 l type FooSym1 (t :: Bool) = Foo t@@ -47,7 +47,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) FooSym0KindInference GHC.Tuple.()) data FooSym0 (l :: TyFun Bool Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply FooSym0 arg)) (KindOf (FooSym1 arg)) =>+ = forall arg. KindOf (Apply FooSym0 arg) ~ KindOf (FooSym1 arg) => FooSym0KindInference type instance Apply FooSym0 l = FooSym1 l type family Ban (a :: Bool) :: Bool where@@ -64,8 +64,7 @@ sFoo :: forall (t :: Bool). Sing t -> Sing (Apply FooSym0 t) sBan sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply BanSym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply BanSym0 x) lambda x = applySing (applySing@@ -83,8 +82,7 @@ in lambda sX sBaz sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply BazSym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply BazSym0 x) lambda x = applySing (applySing@@ -94,8 +92,7 @@ in lambda sX sBar sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply BarSym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply BarSym0 x) lambda x = applySing (applySing@@ -113,8 +110,7 @@ in lambda sX sFoo sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply FooSym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply FooSym0 x) lambda x = applySing (applySing
tests/compile-and-dump/Singletons/T33.ghc78.template view
@@ -11,7 +11,7 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) FooSym0KindInference GHC.Tuple.()) data FooSym0 (l :: TyFun (GHC.Tuple.(,) Bool Bool) GHC.Tuple.())- = forall arg. (GHC.Types.~) (KindOf (Apply FooSym0 arg)) (KindOf (FooSym1 arg)) =>+ = forall arg. KindOf (Apply FooSym0 arg) ~ KindOf (FooSym1 arg) => FooSym0KindInference type instance Apply FooSym0 l = FooSym1 l type family Foo (a :: GHC.Tuple.(,) Bool Bool) :: GHC.Tuple.() where@@ -22,8 +22,7 @@ sFoo (STuple2 _ _) = let lambda ::- forall wild- wild. (GHC.Types.~) t (Apply (Apply Tuple2Sym0 wild) wild) =>+ forall wild wild. t ~ Apply (Apply Tuple2Sym0 wild) wild => Sing (Apply FooSym0 (Apply (Apply Tuple2Sym0 wild) wild)) lambda = STuple0 in lambda
tests/compile-and-dump/Singletons/TopLevelPatterns.ghc78.template view
@@ -13,18 +13,18 @@ suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) BarSym1KindInference GHC.Tuple.()) data BarSym1 (l :: Bool) (l :: TyFun Bool Foo)- = forall arg. (GHC.Types.~) (KindOf (Apply (BarSym1 l) arg)) (KindOf (BarSym2 l arg)) =>+ = forall arg. KindOf (Apply (BarSym1 l) arg) ~ KindOf (BarSym2 l arg) => BarSym1KindInference type instance Apply (BarSym1 l) l = BarSym2 l l instance SuppressUnusedWarnings BarSym0 where suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) BarSym0KindInference GHC.Tuple.()) data BarSym0 (l :: TyFun Bool (TyFun Bool Foo -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply BarSym0 arg)) (KindOf (BarSym1 arg)) =>+ = forall arg. KindOf (Apply BarSym0 arg) ~ KindOf (BarSym1 arg) => BarSym0KindInference type instance Apply BarSym0 l = BarSym1 l data instance Sing (z :: Bool)- = (GHC.Types.~) z False => SFalse | (GHC.Types.~) z True => STrue+ = z ~ False => SFalse | z ~ True => STrue type SBool (z :: Bool) = Sing z instance SingKind (KProxy :: KProxy Bool) where type DemoteRep (KProxy :: KProxy Bool) = Bool@@ -33,7 +33,7 @@ toSing False = SomeSing SFalse toSing True = SomeSing STrue data instance Sing (z :: Foo)- = forall (n :: Bool) (n :: Bool). (GHC.Types.~) z (Bar n n) =>+ = forall (n :: Bool) (n :: Bool). z ~ Bar n n => SBar (Sing n) (Sing n) type SFoo (z :: Foo) = Sing z instance SingKind (KProxy :: KProxy Foo) where@@ -79,7 +79,7 @@ suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) NotSym0KindInference GHC.Tuple.()) data NotSym0 (l :: TyFun Bool Bool)- = forall arg. (GHC.Types.~) (KindOf (Apply NotSym0 arg)) (KindOf (NotSym1 arg)) =>+ = forall arg. KindOf (Apply NotSym0 arg) ~ KindOf (NotSym1 arg) => NotSym0KindInference type instance Apply NotSym0 l = NotSym1 l type IdSym1 (t :: a) = Id t@@ -87,7 +87,7 @@ suppressUnusedWarnings _ = Data.Tuple.snd (GHC.Tuple.(,) IdSym0KindInference GHC.Tuple.()) data IdSym0 (l :: TyFun a a)- = forall arg. (GHC.Types.~) (KindOf (Apply IdSym0 arg)) (KindOf (IdSym1 arg)) =>+ = forall arg. KindOf (Apply IdSym0 arg) ~ KindOf (IdSym1 arg) => IdSym0KindInference type instance Apply IdSym0 l = IdSym1 l type OtherwiseSym0 = Otherwise@@ -105,19 +105,17 @@ sFalse_ = SFalse sNot STrue = let- lambda :: (GHC.Types.~) t TrueSym0 => Sing (Apply NotSym0 TrueSym0)+ lambda :: t ~ TrueSym0 => Sing (Apply NotSym0 TrueSym0) lambda = SFalse in lambda sNot SFalse = let- lambda ::- (GHC.Types.~) t FalseSym0 => Sing (Apply NotSym0 FalseSym0)+ lambda :: t ~ FalseSym0 => Sing (Apply NotSym0 FalseSym0) lambda = STrue in lambda sId sX = let- lambda ::- forall x. (GHC.Types.~) t x => Sing x -> Sing (Apply IdSym0 x)+ lambda :: forall x. t ~ x => Sing x -> Sing (Apply IdSym0 x) lambda x = x in lambda sX sOtherwise = STrue
tests/compile-and-dump/Singletons/Tuples.ghc78.template view
@@ -5,7 +5,7 @@ Singletons/Tuples.hs:(0,0)-(0,0) type Tuple0Sym0 = GHC.Tuple.() data instance Sing (z :: GHC.Tuple.())- = (GHC.Types.~) z GHC.Tuple.() => STuple0+ = z ~ GHC.Tuple.() => STuple0 type STuple0 (z :: GHC.Tuple.()) = Sing z instance SingKind (KProxy :: KProxy GHC.Tuple.()) where type DemoteRep (KProxy :: KProxy GHC.Tuple.()) = GHC.Tuple.()@@ -18,18 +18,18 @@ suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Tuple2Sym1KindInference GHC.Tuple.()) data Tuple2Sym1 (l :: a) (l :: TyFun b (GHC.Tuple.(,) a b))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple2Sym1 l) arg)) (KindOf (Tuple2Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Tuple2Sym1 l) arg) ~ KindOf (Tuple2Sym2 l arg) => Tuple2Sym1KindInference type instance Apply (Tuple2Sym1 l) l = Tuple2Sym2 l l instance SuppressUnusedWarnings Tuple2Sym0 where suppressUnusedWarnings _ = snd (GHC.Tuple.(,) Tuple2Sym0KindInference GHC.Tuple.()) data Tuple2Sym0 (l :: TyFun a (TyFun b (GHC.Tuple.(,) a b) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Tuple2Sym0 arg)) (KindOf (Tuple2Sym1 arg)) =>+ = forall arg. KindOf (Apply Tuple2Sym0 arg) ~ KindOf (Tuple2Sym1 arg) => Tuple2Sym0KindInference type instance Apply Tuple2Sym0 l = Tuple2Sym1 l data instance Sing (z :: GHC.Tuple.(,) a b)- = forall (n :: a) (n :: b). (GHC.Types.~) z (GHC.Tuple.(,) n n) =>+ = forall (n :: a) (n :: b). z ~ GHC.Tuple.(,) n n => STuple2 (Sing n) (Sing n) type STuple2 (z :: GHC.Tuple.(,) a b) = Sing z instance (SingKind (KProxy :: KProxy a),@@ -54,7 +54,7 @@ data Tuple3Sym2 (l :: a) (l :: b) (l :: TyFun c (GHC.Tuple.(,,) a b c))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple3Sym2 l l) arg)) (KindOf (Tuple3Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Tuple3Sym2 l l) arg) ~ KindOf (Tuple3Sym3 l l arg) => Tuple3Sym2KindInference type instance Apply (Tuple3Sym2 l l) l = Tuple3Sym3 l l l instance SuppressUnusedWarnings Tuple3Sym1 where@@ -62,7 +62,7 @@ = snd (GHC.Tuple.(,) Tuple3Sym1KindInference GHC.Tuple.()) data Tuple3Sym1 (l :: a) (l :: TyFun b (TyFun c (GHC.Tuple.(,,) a b c) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple3Sym1 l) arg)) (KindOf (Tuple3Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Tuple3Sym1 l) arg) ~ KindOf (Tuple3Sym2 l arg) => Tuple3Sym1KindInference type instance Apply (Tuple3Sym1 l) l = Tuple3Sym2 l l instance SuppressUnusedWarnings Tuple3Sym0 where@@ -71,13 +71,11 @@ data Tuple3Sym0 (l :: TyFun a (TyFun b (TyFun c (GHC.Tuple.(,,) a b c) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Tuple3Sym0 arg)) (KindOf (Tuple3Sym1 arg)) =>+ = forall arg. KindOf (Apply Tuple3Sym0 arg) ~ KindOf (Tuple3Sym1 arg) => Tuple3Sym0KindInference type instance Apply Tuple3Sym0 l = Tuple3Sym1 l data instance Sing (z :: GHC.Tuple.(,,) a b c)- = forall (n :: a)- (n :: b)- (n :: c). (GHC.Types.~) z (GHC.Tuple.(,,) n n n) =>+ = forall (n :: a) (n :: b) (n :: c). z ~ GHC.Tuple.(,,) n n n => STuple3 (Sing n) (Sing n) (Sing n) type STuple3 (z :: GHC.Tuple.(,,) a b c) = Sing z instance (SingKind (KProxy :: KProxy a),@@ -108,7 +106,7 @@ (l :: b) (l :: c) (l :: TyFun d (GHC.Tuple.(,,,) a b c d))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple4Sym3 l l l) arg)) (KindOf (Tuple4Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Tuple4Sym3 l l l) arg) ~ KindOf (Tuple4Sym4 l l l arg) => Tuple4Sym3KindInference type instance Apply (Tuple4Sym3 l l l) l = Tuple4Sym4 l l l l instance SuppressUnusedWarnings Tuple4Sym2 where@@ -117,7 +115,7 @@ data Tuple4Sym2 (l :: a) (l :: b) (l :: TyFun c (TyFun d (GHC.Tuple.(,,,) a b c d) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple4Sym2 l l) arg)) (KindOf (Tuple4Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Tuple4Sym2 l l) arg) ~ KindOf (Tuple4Sym3 l l arg) => Tuple4Sym2KindInference type instance Apply (Tuple4Sym2 l l) l = Tuple4Sym3 l l l instance SuppressUnusedWarnings Tuple4Sym1 where@@ -126,7 +124,7 @@ data Tuple4Sym1 (l :: a) (l :: TyFun b (TyFun c (TyFun d (GHC.Tuple.(,,,) a b c d) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple4Sym1 l) arg)) (KindOf (Tuple4Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Tuple4Sym1 l) arg) ~ KindOf (Tuple4Sym2 l arg) => Tuple4Sym1KindInference type instance Apply (Tuple4Sym1 l) l = Tuple4Sym2 l l instance SuppressUnusedWarnings Tuple4Sym0 where@@ -136,14 +134,14 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Tuple4Sym0 arg)) (KindOf (Tuple4Sym1 arg)) =>+ = forall arg. KindOf (Apply Tuple4Sym0 arg) ~ KindOf (Tuple4Sym1 arg) => Tuple4Sym0KindInference type instance Apply Tuple4Sym0 l = Tuple4Sym1 l data instance Sing (z :: GHC.Tuple.(,,,) a b c d) = forall (n :: a) (n :: b) (n :: c)- (n :: d). (GHC.Types.~) z (GHC.Tuple.(,,,) n n n n) =>+ (n :: d). z ~ GHC.Tuple.(,,,) n n n n => STuple4 (Sing n) (Sing n) (Sing n) (Sing n) type STuple4 (z :: GHC.Tuple.(,,,) a b c d) = Sing z instance (SingKind (KProxy :: KProxy a),@@ -178,7 +176,7 @@ (l :: c) (l :: d) (l :: TyFun e (GHC.Tuple.(,,,,) a b c d e))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple5Sym4 l l l l) arg)) (KindOf (Tuple5Sym5 l l l l arg)) =>+ = forall arg. KindOf (Apply (Tuple5Sym4 l l l l) arg) ~ KindOf (Tuple5Sym5 l l l l arg) => Tuple5Sym4KindInference type instance Apply (Tuple5Sym4 l l l l) l = Tuple5Sym5 l l l l l instance SuppressUnusedWarnings Tuple5Sym3 where@@ -188,7 +186,7 @@ (l :: b) (l :: c) (l :: TyFun d (TyFun e (GHC.Tuple.(,,,,) a b c d e) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple5Sym3 l l l) arg)) (KindOf (Tuple5Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Tuple5Sym3 l l l) arg) ~ KindOf (Tuple5Sym4 l l l arg) => Tuple5Sym3KindInference type instance Apply (Tuple5Sym3 l l l) l = Tuple5Sym4 l l l l instance SuppressUnusedWarnings Tuple5Sym2 where@@ -198,7 +196,7 @@ (l :: b) (l :: TyFun c (TyFun d (TyFun e (GHC.Tuple.(,,,,) a b c d e) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple5Sym2 l l) arg)) (KindOf (Tuple5Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Tuple5Sym2 l l) arg) ~ KindOf (Tuple5Sym3 l l arg) => Tuple5Sym2KindInference type instance Apply (Tuple5Sym2 l l) l = Tuple5Sym3 l l l instance SuppressUnusedWarnings Tuple5Sym1 where@@ -209,7 +207,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple5Sym1 l) arg)) (KindOf (Tuple5Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Tuple5Sym1 l) arg) ~ KindOf (Tuple5Sym2 l arg) => Tuple5Sym1KindInference type instance Apply (Tuple5Sym1 l) l = Tuple5Sym2 l l instance SuppressUnusedWarnings Tuple5Sym0 where@@ -220,7 +218,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Tuple5Sym0 arg)) (KindOf (Tuple5Sym1 arg)) =>+ = forall arg. KindOf (Apply Tuple5Sym0 arg) ~ KindOf (Tuple5Sym1 arg) => Tuple5Sym0KindInference type instance Apply Tuple5Sym0 l = Tuple5Sym1 l data instance Sing (z :: GHC.Tuple.(,,,,) a b c d e)@@ -228,7 +226,7 @@ (n :: b) (n :: c) (n :: d)- (n :: e). (GHC.Types.~) z (GHC.Tuple.(,,,,) n n n n n) =>+ (n :: e). z ~ GHC.Tuple.(,,,,) n n n n n => STuple5 (Sing n) (Sing n) (Sing n) (Sing n) (Sing n) type STuple5 (z :: GHC.Tuple.(,,,,) a b c d e) = Sing z instance (SingKind (KProxy :: KProxy a),@@ -275,7 +273,7 @@ (l :: d) (l :: e) (l :: TyFun f (GHC.Tuple.(,,,,,) a b c d e f))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple6Sym5 l l l l l) arg)) (KindOf (Tuple6Sym6 l l l l l arg)) =>+ = forall arg. KindOf (Apply (Tuple6Sym5 l l l l l) arg) ~ KindOf (Tuple6Sym6 l l l l l arg) => Tuple6Sym5KindInference type instance Apply (Tuple6Sym5 l l l l l) l = Tuple6Sym6 l l l l l l instance SuppressUnusedWarnings Tuple6Sym4 where@@ -286,7 +284,7 @@ (l :: c) (l :: d) (l :: TyFun e (TyFun f (GHC.Tuple.(,,,,,) a b c d e f) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple6Sym4 l l l l) arg)) (KindOf (Tuple6Sym5 l l l l arg)) =>+ = forall arg. KindOf (Apply (Tuple6Sym4 l l l l) arg) ~ KindOf (Tuple6Sym5 l l l l arg) => Tuple6Sym4KindInference type instance Apply (Tuple6Sym4 l l l l) l = Tuple6Sym5 l l l l l instance SuppressUnusedWarnings Tuple6Sym3 where@@ -298,7 +296,7 @@ (l :: TyFun d (TyFun e (TyFun f (GHC.Tuple.(,,,,,) a b c d e f) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple6Sym3 l l l) arg)) (KindOf (Tuple6Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Tuple6Sym3 l l l) arg) ~ KindOf (Tuple6Sym4 l l l arg) => Tuple6Sym3KindInference type instance Apply (Tuple6Sym3 l l l) l = Tuple6Sym4 l l l l instance SuppressUnusedWarnings Tuple6Sym2 where@@ -310,7 +308,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple6Sym2 l l) arg)) (KindOf (Tuple6Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Tuple6Sym2 l l) arg) ~ KindOf (Tuple6Sym3 l l arg) => Tuple6Sym2KindInference type instance Apply (Tuple6Sym2 l l) l = Tuple6Sym3 l l l instance SuppressUnusedWarnings Tuple6Sym1 where@@ -322,7 +320,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple6Sym1 l) arg)) (KindOf (Tuple6Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Tuple6Sym1 l) arg) ~ KindOf (Tuple6Sym2 l arg) => Tuple6Sym1KindInference type instance Apply (Tuple6Sym1 l) l = Tuple6Sym2 l l instance SuppressUnusedWarnings Tuple6Sym0 where@@ -334,7 +332,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Tuple6Sym0 arg)) (KindOf (Tuple6Sym1 arg)) =>+ = forall arg. KindOf (Apply Tuple6Sym0 arg) ~ KindOf (Tuple6Sym1 arg) => Tuple6Sym0KindInference type instance Apply Tuple6Sym0 l = Tuple6Sym1 l data instance Sing (z :: GHC.Tuple.(,,,,,) a b c d e f)@@ -343,7 +341,7 @@ (n :: c) (n :: d) (n :: e)- (n :: f). (GHC.Types.~) z (GHC.Tuple.(,,,,,) n n n n n n) =>+ (n :: f). z ~ GHC.Tuple.(,,,,,) n n n n n n => STuple6 (Sing n) (Sing n) (Sing n) (Sing n) (Sing n) (Sing n) type STuple6 (z :: GHC.Tuple.(,,,,,) a b c d e f) = Sing z instance (SingKind (KProxy :: KProxy a),@@ -400,7 +398,7 @@ (l :: e) (l :: f) (l :: TyFun g (GHC.Tuple.(,,,,,,) a b c d e f g))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple7Sym6 l l l l l l) arg)) (KindOf (Tuple7Sym7 l l l l l l arg)) =>+ = forall arg. KindOf (Apply (Tuple7Sym6 l l l l l l) arg) ~ KindOf (Tuple7Sym7 l l l l l l arg) => Tuple7Sym6KindInference type instance Apply (Tuple7Sym6 l l l l l l) l = Tuple7Sym7 l l l l l l l instance SuppressUnusedWarnings Tuple7Sym5 where@@ -412,7 +410,7 @@ (l :: d) (l :: e) (l :: TyFun f (TyFun g (GHC.Tuple.(,,,,,,) a b c d e f g) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple7Sym5 l l l l l) arg)) (KindOf (Tuple7Sym6 l l l l l arg)) =>+ = forall arg. KindOf (Apply (Tuple7Sym5 l l l l l) arg) ~ KindOf (Tuple7Sym6 l l l l l arg) => Tuple7Sym5KindInference type instance Apply (Tuple7Sym5 l l l l l) l = Tuple7Sym6 l l l l l l instance SuppressUnusedWarnings Tuple7Sym4 where@@ -425,7 +423,7 @@ (l :: TyFun e (TyFun f (TyFun g (GHC.Tuple.(,,,,,,) a b c d e f g) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple7Sym4 l l l l) arg)) (KindOf (Tuple7Sym5 l l l l arg)) =>+ = forall arg. KindOf (Apply (Tuple7Sym4 l l l l) arg) ~ KindOf (Tuple7Sym5 l l l l arg) => Tuple7Sym4KindInference type instance Apply (Tuple7Sym4 l l l l) l = Tuple7Sym5 l l l l l instance SuppressUnusedWarnings Tuple7Sym3 where@@ -438,7 +436,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple7Sym3 l l l) arg)) (KindOf (Tuple7Sym4 l l l arg)) =>+ = forall arg. KindOf (Apply (Tuple7Sym3 l l l) arg) ~ KindOf (Tuple7Sym4 l l l arg) => Tuple7Sym3KindInference type instance Apply (Tuple7Sym3 l l l) l = Tuple7Sym4 l l l l instance SuppressUnusedWarnings Tuple7Sym2 where@@ -451,7 +449,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple7Sym2 l l) arg)) (KindOf (Tuple7Sym3 l l arg)) =>+ = forall arg. KindOf (Apply (Tuple7Sym2 l l) arg) ~ KindOf (Tuple7Sym3 l l arg) => Tuple7Sym2KindInference type instance Apply (Tuple7Sym2 l l) l = Tuple7Sym3 l l l instance SuppressUnusedWarnings Tuple7Sym1 where@@ -464,7 +462,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply (Tuple7Sym1 l) arg)) (KindOf (Tuple7Sym2 l arg)) =>+ = forall arg. KindOf (Apply (Tuple7Sym1 l) arg) ~ KindOf (Tuple7Sym2 l arg) => Tuple7Sym1KindInference type instance Apply (Tuple7Sym1 l) l = Tuple7Sym2 l l instance SuppressUnusedWarnings Tuple7Sym0 where@@ -477,7 +475,7 @@ -> *) -> *) -> *))- = forall arg. (GHC.Types.~) (KindOf (Apply Tuple7Sym0 arg)) (KindOf (Tuple7Sym1 arg)) =>+ = forall arg. KindOf (Apply Tuple7Sym0 arg) ~ KindOf (Tuple7Sym1 arg) => Tuple7Sym0KindInference type instance Apply Tuple7Sym0 l = Tuple7Sym1 l data instance Sing (z :: GHC.Tuple.(,,,,,,) a b c d e f g)@@ -487,7 +485,7 @@ (n :: d) (n :: e) (n :: f)- (n :: g). (GHC.Types.~) z (GHC.Tuple.(,,,,,,) n n n n n n n) =>+ (n :: g). z ~ GHC.Tuple.(,,,,,,) n n n n n n n => STuple7 (Sing n) (Sing n) (Sing n) (Sing n) (Sing n) (Sing n) (Sing n) type STuple7 (z :: GHC.Tuple.(,,,,,,) a b c d e f g) = Sing z instance (SingKind (KProxy :: KProxy a),