summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorVladislav Zavialov <vlad.z.4096@gmail.com>2018-06-14 15:02:36 -0400
committerRichard Eisenberg <rae@cs.brynmawr.edu>2018-06-14 15:05:32 -0400
commitd650729f9a0f3b6aa5e6ef2d5fba337f6f70fa60 (patch)
treeac224609397d4b7ca7072fc87739d2522be7675b /testsuite
parent4672e2ebf040feffde4e7e2d79c479e4c0c3efaf (diff)
downloadhaskell-d650729f9a0f3b6aa5e6ef2d5fba337f6f70fa60.tar.gz
Embrace -XTypeInType, add -XStarIsType
Summary: Implement the "Embrace Type :: Type" GHC proposal, .../ghc-proposals/blob/master/proposals/0020-no-type-in-type.rst GHC 8.0 included a major change to GHC's type system: the Type :: Type axiom. Though casual users were protected from this by hiding its features behind the -XTypeInType extension, all programs written in GHC 8+ have the axiom behind the scenes. In order to preserve backward compatibility, various legacy features were left unchanged. For example, with -XDataKinds but not -XTypeInType, GADTs could not be used in types. Now these restrictions are lifted and -XTypeInType becomes a redundant flag that will be eventually deprecated. * Incorporate the features currently in -XTypeInType into the -XPolyKinds and -XDataKinds extensions. * Introduce a new extension -XStarIsType to control how to parse * in code and whether to print it in error messages. Test Plan: Validate Reviewers: goldfire, hvr, bgamari, alanz, simonpj Reviewed By: goldfire, simonpj Subscribers: rwbarton, thomie, mpickering, carter GHC Trac Issues: #15195 Differential Revision: https://phabricator.haskell.org/D4748
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/tests/codeGen/should_fail/T13233.hs2
-rw-r--r--testsuite/tests/dependent/ghci/T11549.script2
-rw-r--r--testsuite/tests/dependent/ghci/T14238.stdout2
-rw-r--r--testsuite/tests/dependent/should_compile/Dep1.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/Dep2.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/Dep3.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/DkNameRes.hs9
-rw-r--r--testsuite/tests/dependent/should_compile/InferDependency.hs6
-rw-r--r--testsuite/tests/dependent/should_compile/KindEqualities.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/KindEqualities2.hs3
-rw-r--r--testsuite/tests/dependent/should_compile/KindLevels.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/RAE_T32b.hs24
-rw-r--r--testsuite/tests/dependent/should_compile/Rae31.hs23
-rw-r--r--testsuite/tests/dependent/should_compile/RaeBlogPost.hs27
-rw-r--r--testsuite/tests/dependent/should_compile/RaeJobTalk.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/T11405.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/T11635.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/T11711.hs1
-rw-r--r--testsuite/tests/dependent/should_compile/T11719.hs6
-rw-r--r--testsuite/tests/dependent/should_compile/T11966.hs1
-rw-r--r--testsuite/tests/dependent/should_compile/T12176.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/T12442.hs4
-rw-r--r--testsuite/tests/dependent/should_compile/T12742.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/T13910.hs9
-rw-r--r--testsuite/tests/dependent/should_compile/T13938.hs3
-rw-r--r--testsuite/tests/dependent/should_compile/T13938a.hs3
-rw-r--r--testsuite/tests/dependent/should_compile/T14038.hs3
-rw-r--r--testsuite/tests/dependent/should_compile/T14066a.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/T14556.hs3
-rw-r--r--testsuite/tests/dependent/should_compile/T14720.hs3
-rw-r--r--testsuite/tests/dependent/should_compile/T14749.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/T14991.hs3
-rw-r--r--testsuite/tests/dependent/should_compile/T9632.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/TypeLevelVec.hs2
-rw-r--r--testsuite/tests/dependent/should_compile/all.T1
-rw-r--r--testsuite/tests/dependent/should_compile/dynamic-paper.hs27
-rw-r--r--testsuite/tests/dependent/should_compile/mkGADTVars.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/BadTelescope.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/BadTelescope2.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/BadTelescope3.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/BadTelescope4.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/DepFail1.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/InferDependency.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/KindLevelsB.hs9
-rw-r--r--testsuite/tests/dependent/should_fail/KindLevelsB.stderr5
-rw-r--r--testsuite/tests/dependent/should_fail/PromotedClass.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/RAE_T32a.hs28
-rw-r--r--testsuite/tests/dependent/should_fail/RAE_T32a.stderr6
-rw-r--r--testsuite/tests/dependent/should_fail/RenamingStar.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/RenamingStar.stderr10
-rw-r--r--testsuite/tests/dependent/should_fail/SelfDep.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/SelfDep.stderr8
-rw-r--r--testsuite/tests/dependent/should_fail/T11407.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T11473.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T12081.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T12174.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T13135.hs4
-rw-r--r--testsuite/tests/dependent/should_fail/T13601.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T13780a.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T13780b.hs3
-rw-r--r--testsuite/tests/dependent/should_fail/T13780c.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T13780c.stderr6
-rw-r--r--testsuite/tests/dependent/should_fail/T14066.hs4
-rw-r--r--testsuite/tests/dependent/should_fail/T14066c.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T14066d.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T14066e.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T14066f.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T14066g.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T14066h.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/T15245.hs10
-rw-r--r--testsuite/tests/dependent/should_fail/T15245.stderr7
-rw-r--r--testsuite/tests/dependent/should_fail/TypeSkolEscape.hs2
-rw-r--r--testsuite/tests/dependent/should_fail/all.T2
-rw-r--r--testsuite/tests/dependent/should_run/T11964a.hs2
-rw-r--r--testsuite/tests/deriving/should_compile/T11416.hs3
-rw-r--r--testsuite/tests/deriving/should_compile/T11732a.hs2
-rw-r--r--testsuite/tests/deriving/should_compile/T11732b.hs2
-rw-r--r--testsuite/tests/deriving/should_compile/T11732c.hs2
-rw-r--r--testsuite/tests/deriving/should_compile/T14331.hs2
-rw-r--r--testsuite/tests/deriving/should_compile/T14579.hs3
-rw-r--r--testsuite/tests/deriving/should_compile/T14932.hs4
-rw-r--r--testsuite/tests/deriving/should_fail/T12512.hs2
-rw-r--r--testsuite/tests/deriving/should_fail/T14728a.hs2
-rw-r--r--testsuite/tests/deriving/should_fail/T14728b.hs2
-rw-r--r--testsuite/tests/deriving/should_fail/T15073.hs2
-rw-r--r--testsuite/tests/determinism/determ004/determ004.hs2
-rw-r--r--testsuite/tests/determinism/determ014/A.hs6
-rw-r--r--testsuite/tests/driver/T4437.hs1
-rw-r--r--testsuite/tests/gadt/T7293.hs6
-rw-r--r--testsuite/tests/gadt/T7293.stderr4
-rw-r--r--testsuite/tests/gadt/T7294.hs6
-rw-r--r--testsuite/tests/gadt/T7294.stderr4
-rw-r--r--testsuite/tests/generics/GEq/GEq1.hs5
-rw-r--r--testsuite/tests/ghci/scripts/T10321.hs3
-rw-r--r--testsuite/tests/ghci/scripts/T11252.script2
-rw-r--r--testsuite/tests/ghci/scripts/T11376.script2
-rw-r--r--testsuite/tests/ghci/scripts/T12550.script2
-rw-r--r--testsuite/tests/ghci/scripts/T13407.script4
-rw-r--r--testsuite/tests/ghci/scripts/T13963.script2
-rw-r--r--testsuite/tests/ghci/scripts/T13988.hs2
-rw-r--r--testsuite/tests/ghci/scripts/T7873.script2
-rw-r--r--testsuite/tests/ghci/scripts/T7939.hs4
-rw-r--r--testsuite/tests/ghci/scripts/T8357.hs7
-rw-r--r--testsuite/tests/indexed-types/should_compile/HO.hs5
-rw-r--r--testsuite/tests/indexed-types/should_compile/Numerals.hs7
-rw-r--r--testsuite/tests/indexed-types/should_compile/T12369.hs4
-rw-r--r--testsuite/tests/indexed-types/should_compile/T12522b.hs8
-rw-r--r--testsuite/tests/indexed-types/should_compile/T12938.hs2
-rw-r--r--testsuite/tests/indexed-types/should_compile/T13244.hs2
-rw-r--r--testsuite/tests/indexed-types/should_compile/T13398b.hs2
-rw-r--r--testsuite/tests/indexed-types/should_compile/T14162.hs3
-rw-r--r--testsuite/tests/indexed-types/should_compile/T14554.hs5
-rw-r--r--testsuite/tests/indexed-types/should_compile/T15122.hs2
-rw-r--r--testsuite/tests/indexed-types/should_compile/T2219.hs4
-rw-r--r--testsuite/tests/indexed-types/should_compile/T7585.hs8
-rw-r--r--testsuite/tests/indexed-types/should_compile/T9747.hs9
-rw-r--r--testsuite/tests/indexed-types/should_fail/T12522a.hs6
-rw-r--r--testsuite/tests/indexed-types/should_fail/T12522a.stderr6
-rw-r--r--testsuite/tests/indexed-types/should_fail/T13674.hs4
-rw-r--r--testsuite/tests/indexed-types/should_fail/T13784.hs5
-rw-r--r--testsuite/tests/indexed-types/should_fail/T13784.stderr14
-rw-r--r--testsuite/tests/indexed-types/should_fail/T13877.hs6
-rw-r--r--testsuite/tests/indexed-types/should_fail/T13972.hs2
-rw-r--r--testsuite/tests/indexed-types/should_fail/T14175.hs2
-rw-r--r--testsuite/tests/indexed-types/should_fail/T14246.hs8
-rw-r--r--testsuite/tests/indexed-types/should_fail/T14246.stderr2
-rw-r--r--testsuite/tests/indexed-types/should_fail/T14369.hs2
-rw-r--r--testsuite/tests/indexed-types/should_fail/T2544.hs4
-rw-r--r--testsuite/tests/indexed-types/should_fail/T2544.stderr8
-rw-r--r--testsuite/tests/indexed-types/should_fail/T3330c.hs8
-rw-r--r--testsuite/tests/indexed-types/should_fail/T3330c.stderr10
-rw-r--r--testsuite/tests/indexed-types/should_fail/T4174.hs12
-rw-r--r--testsuite/tests/indexed-types/should_fail/T4174.stderr6
-rw-r--r--testsuite/tests/indexed-types/should_fail/T7786.hs4
-rw-r--r--testsuite/tests/indexed-types/should_fail/T7786.stderr25
-rw-r--r--testsuite/tests/indexed-types/should_fail/T7967.hs10
-rw-r--r--testsuite/tests/indexed-types/should_fail/T7967.stderr12
-rw-r--r--testsuite/tests/indexed-types/should_fail/T9036.hs7
-rw-r--r--testsuite/tests/indexed-types/should_fail/T9036.stderr2
-rw-r--r--testsuite/tests/indexed-types/should_fail/T9662.hs4
-rw-r--r--testsuite/tests/indexed-types/should_fail/T9662.stderr6
-rw-r--r--testsuite/tests/indexed-types/should_run/T11465a.hs1
-rw-r--r--testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs5
-rw-r--r--testsuite/tests/overloadedrecflds/should_run/overloadedrecfldsrun07.hs6
-rw-r--r--testsuite/tests/parser/should_compile/DumpParsedAst.stderr109
-rw-r--r--testsuite/tests/parser/should_compile/DumpRenamedAst.hs2
-rw-r--r--testsuite/tests/parser/should_compile/DumpRenamedAst.stderr62
-rw-r--r--testsuite/tests/parser/should_compile/T10379.hs2
-rw-r--r--testsuite/tests/parser/should_fail/T15209.stderr2
-rw-r--r--testsuite/tests/parser/should_fail/all.T5
-rw-r--r--testsuite/tests/parser/should_fail/readFail036.hs4
-rw-r--r--testsuite/tests/parser/should_fail/readFail036.stderr4
-rw-r--r--testsuite/tests/parser/should_fail/typeops_A.hs1
-rw-r--r--testsuite/tests/parser/should_fail/typeops_A.stderr2
-rw-r--r--testsuite/tests/parser/should_fail/typeops_B.hs1
-rw-r--r--testsuite/tests/parser/should_fail/typeops_B.stderr2
-rw-r--r--testsuite/tests/parser/should_fail/typeops_C.hs1
-rw-r--r--testsuite/tests/parser/should_fail/typeops_C.stderr2
-rw-r--r--testsuite/tests/parser/should_fail/typeops_D.hs1
-rw-r--r--testsuite/tests/parser/should_fail/typeops_D.stderr2
-rw-r--r--testsuite/tests/partial-sigs/should_compile/T15039a.hs12
-rw-r--r--testsuite/tests/partial-sigs/should_compile/T15039a.stderr11
-rw-r--r--testsuite/tests/partial-sigs/should_compile/T15039b.hs12
-rw-r--r--testsuite/tests/partial-sigs/should_compile/T15039b.stderr44
-rw-r--r--testsuite/tests/partial-sigs/should_compile/T15039c.hs12
-rw-r--r--testsuite/tests/partial-sigs/should_compile/T15039c.stderr11
-rw-r--r--testsuite/tests/partial-sigs/should_compile/T15039d.hs12
-rw-r--r--testsuite/tests/partial-sigs/should_compile/T15039d.stderr44
-rw-r--r--testsuite/tests/partial-sigs/should_fail/T14040a.hs2
-rw-r--r--testsuite/tests/partial-sigs/should_fail/T14584.hs2
-rw-r--r--testsuite/tests/partial-sigs/should_fail/T14584.stderr2
-rw-r--r--testsuite/tests/patsyn/should_compile/T12698.hs2
-rw-r--r--testsuite/tests/patsyn/should_compile/T12968.hs2
-rw-r--r--testsuite/tests/patsyn/should_compile/T13768.hs8
-rw-r--r--testsuite/tests/patsyn/should_compile/T14058.hs2
-rw-r--r--testsuite/tests/patsyn/should_compile/T14058a.hs3
-rw-r--r--testsuite/tests/patsyn/should_fail/T14507.hs4
-rw-r--r--testsuite/tests/patsyn/should_fail/T14507.stderr2
-rw-r--r--testsuite/tests/patsyn/should_fail/T14552.hs2
-rw-r--r--testsuite/tests/perf/compiler/T12227.hs17
-rw-r--r--testsuite/tests/perf/compiler/T12545a.hs3
-rw-r--r--testsuite/tests/perf/compiler/T13035.hs13
-rw-r--r--testsuite/tests/perf/compiler/T13035.stderr2
-rw-r--r--testsuite/tests/perf/compiler/T9872d.hs186
-rw-r--r--testsuite/tests/pmcheck/complete_sigs/T14253.hs2
-rw-r--r--testsuite/tests/pmcheck/should_compile/T14086.hs2
-rw-r--r--testsuite/tests/pmcheck/should_compile/T3927b.hs8
-rw-r--r--testsuite/tests/polykinds/MonoidsTF.hs4
-rw-r--r--testsuite/tests/polykinds/PolyKinds10.hs27
-rw-r--r--testsuite/tests/polykinds/SigTvKinds3.hs2
-rw-r--r--testsuite/tests/polykinds/T10134a.hs3
-rw-r--r--testsuite/tests/polykinds/T10934.hs6
-rw-r--r--testsuite/tests/polykinds/T11142.hs2
-rw-r--r--testsuite/tests/polykinds/T11399.hs2
-rw-r--r--testsuite/tests/polykinds/T11480b.hs24
-rw-r--r--testsuite/tests/polykinds/T11520.hs2
-rw-r--r--testsuite/tests/polykinds/T11523.hs1
-rw-r--r--testsuite/tests/polykinds/T11554.hs2
-rw-r--r--testsuite/tests/polykinds/T11616.hs2
-rw-r--r--testsuite/tests/polykinds/T11640.hs2
-rw-r--r--testsuite/tests/polykinds/T11648.hs4
-rw-r--r--testsuite/tests/polykinds/T11648b.hs2
-rw-r--r--testsuite/tests/polykinds/T11821a.hs2
-rw-r--r--testsuite/tests/polykinds/T12055.hs4
-rw-r--r--testsuite/tests/polykinds/T12055a.hs4
-rw-r--r--testsuite/tests/polykinds/T12593.hs2
-rw-r--r--testsuite/tests/polykinds/T12668.hs2
-rw-r--r--testsuite/tests/polykinds/T12718.hs2
-rw-r--r--testsuite/tests/polykinds/T13391.hs7
-rw-r--r--testsuite/tests/polykinds/T13391.stderr7
-rw-r--r--testsuite/tests/polykinds/T13625.hs2
-rw-r--r--testsuite/tests/polykinds/T13659.hs4
-rw-r--r--testsuite/tests/polykinds/T13659.stderr2
-rw-r--r--testsuite/tests/polykinds/T13738.hs2
-rw-r--r--testsuite/tests/polykinds/T13985.stderr10
-rw-r--r--testsuite/tests/polykinds/T14174.hs2
-rw-r--r--testsuite/tests/polykinds/T14174a.hs7
-rw-r--r--testsuite/tests/polykinds/T14209.hs2
-rw-r--r--testsuite/tests/polykinds/T14270.hs2
-rw-r--r--testsuite/tests/polykinds/T14450.hs4
-rw-r--r--testsuite/tests/polykinds/T14450.stderr2
-rw-r--r--testsuite/tests/polykinds/T14515.hs3
-rw-r--r--testsuite/tests/polykinds/T14520.hs4
-rw-r--r--testsuite/tests/polykinds/T14555.hs4
-rw-r--r--testsuite/tests/polykinds/T14561.hs2
-rw-r--r--testsuite/tests/polykinds/T14563.hs2
-rw-r--r--testsuite/tests/polykinds/T14580.hs2
-rw-r--r--testsuite/tests/polykinds/T14710.stderr8
-rw-r--r--testsuite/tests/polykinds/T14846.hs2
-rw-r--r--testsuite/tests/polykinds/T14873.hs3
-rw-r--r--testsuite/tests/polykinds/T15170.hs2
-rw-r--r--testsuite/tests/polykinds/T5716.hs3
-rw-r--r--testsuite/tests/polykinds/T5716.stderr10
-rw-r--r--testsuite/tests/polykinds/T6021.stderr4
-rw-r--r--testsuite/tests/polykinds/T6035.hs4
-rw-r--r--testsuite/tests/polykinds/T6039.stderr12
-rw-r--r--testsuite/tests/polykinds/T6093.hs7
-rw-r--r--testsuite/tests/polykinds/T7404.stderr4
-rw-r--r--testsuite/tests/polykinds/T7594.hs6
-rw-r--r--testsuite/tests/polykinds/T7594.stderr9
-rw-r--r--testsuite/tests/polykinds/T8566.hs8
-rw-r--r--testsuite/tests/polykinds/T8566.stderr8
-rw-r--r--testsuite/tests/polykinds/T8566a.hs8
-rw-r--r--testsuite/tests/polykinds/T8985.hs8
-rw-r--r--testsuite/tests/polykinds/T9222.hs3
-rw-r--r--testsuite/tests/polykinds/T9222.stderr6
-rw-r--r--testsuite/tests/polykinds/all.T5
-rw-r--r--testsuite/tests/printer/Ppr040.hs2
-rw-r--r--testsuite/tests/printer/Ppr045.hs1
-rw-r--r--testsuite/tests/rename/should_fail/T11592.hs2
-rw-r--r--testsuite/tests/rename/should_fail/T13947.stderr2
-rw-r--r--testsuite/tests/simplCore/should_compile/T13025a.hs6
-rw-r--r--testsuite/tests/simplCore/should_compile/T13658.hs2
-rw-r--r--testsuite/tests/simplCore/should_compile/T14270a.hs3
-rw-r--r--testsuite/tests/simplCore/should_compile/T15186A.hs2
-rw-r--r--testsuite/tests/simplCore/should_compile/T4903a.hs10
-rw-r--r--testsuite/tests/simplCore/should_run/T13750a.hs13
-rw-r--r--testsuite/tests/th/T11463.hs2
-rw-r--r--testsuite/tests/th/T11484.hs2
-rw-r--r--testsuite/tests/th/T13642.hs2
-rw-r--r--testsuite/tests/th/T13781.hs2
-rw-r--r--testsuite/tests/th/T14060.hs2
-rw-r--r--testsuite/tests/th/T14869.hs2
-rw-r--r--testsuite/tests/th/T8031.hs4
-rw-r--r--testsuite/tests/th/TH_RichKinds2.hs5
-rw-r--r--testsuite/tests/th/TH_RichKinds2.stderr2
-rw-r--r--testsuite/tests/typecheck/should_compile/SplitWD.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T10432.hs5
-rw-r--r--testsuite/tests/typecheck/should_compile/T11237.hs4
-rw-r--r--testsuite/tests/typecheck/should_compile/T11348.hs1
-rw-r--r--testsuite/tests/typecheck/should_compile/T11524.hs1
-rw-r--r--testsuite/tests/typecheck/should_compile/T11723.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T11811.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T12133.hs6
-rw-r--r--testsuite/tests/typecheck/should_compile/T12381.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T12734.hs38
-rw-r--r--testsuite/tests/typecheck/should_compile/T12734a.hs31
-rw-r--r--testsuite/tests/typecheck/should_compile/T12734a.stderr9
-rw-r--r--testsuite/tests/typecheck/should_compile/T12785a.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T12911.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T12919.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T12987.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T13083.hs5
-rw-r--r--testsuite/tests/typecheck/should_compile/T13333.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T13337.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T13343.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T13458.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T13603.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T13643.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T13822.hs3
-rw-r--r--testsuite/tests/typecheck/should_compile/T13871.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T13879.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T13915a.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T13915b.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T13943.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/T14441.hs3
-rw-r--r--testsuite/tests/typecheck/should_compile/T14934a.hs3
-rw-r--r--testsuite/tests/typecheck/should_compile/all.T4
-rw-r--r--testsuite/tests/typecheck/should_compile/tc191.hs2
-rw-r--r--testsuite/tests/typecheck/should_compile/tc205.hs4
-rw-r--r--testsuite/tests/typecheck/should_compile/tc269.hs3
-rw-r--r--testsuite/tests/typecheck/should_compile/valid_hole_fits_interactions.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/ClassOperator.hs4
-rw-r--r--testsuite/tests/typecheck/should_fail/ClassOperator.stderr16
-rw-r--r--testsuite/tests/typecheck/should_fail/CustomTypeErrors04.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/CustomTypeErrors05.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/LevPolyBounded.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/T11313.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/T11313.stderr8
-rw-r--r--testsuite/tests/typecheck/should_fail/T11724.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/T11963.hs29
-rw-r--r--testsuite/tests/typecheck/should_fail/T11963.stderr20
-rw-r--r--testsuite/tests/typecheck/should_fail/T12648.hs6
-rw-r--r--testsuite/tests/typecheck/should_fail/T12709.hs3
-rw-r--r--testsuite/tests/typecheck/should_fail/T12709.stderr8
-rw-r--r--testsuite/tests/typecheck/should_fail/T12785b.hs8
-rw-r--r--testsuite/tests/typecheck/should_fail/T12973.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/T13105.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/T13446.hs4
-rw-r--r--testsuite/tests/typecheck/should_fail/T13909.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/T13929.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/T13983.stderr2
-rw-r--r--testsuite/tests/typecheck/should_fail/T14350.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/T14904a.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/T14904b.hs2
-rw-r--r--testsuite/tests/typecheck/should_fail/T7645.hs4
-rw-r--r--testsuite/tests/typecheck/should_fail/T7645.stderr5
-rw-r--r--testsuite/tests/typecheck/should_fail/all.T1
-rw-r--r--testsuite/tests/typecheck/should_run/EtaExpandLevPoly.hs4
-rw-r--r--testsuite/tests/typecheck/should_run/KindInvariant.script6
-rw-r--r--testsuite/tests/typecheck/should_run/T11120.hs2
-rw-r--r--testsuite/tests/typecheck/should_run/T12809.hs2
-rw-r--r--testsuite/tests/typecheck/should_run/T13435.hs3
-rw-r--r--testsuite/tests/typecheck/should_run/TypeOf.hs2
-rw-r--r--testsuite/tests/typecheck/should_run/TypeRep.hs4
-rw-r--r--testsuite/tests/unboxedsums/sum_rr.hs2
336 files changed, 1081 insertions, 912 deletions
diff --git a/testsuite/tests/codeGen/should_fail/T13233.hs b/testsuite/tests/codeGen/should_fail/T13233.hs
index fa5a37b046..1facb77914 100644
--- a/testsuite/tests/codeGen/should_fail/T13233.hs
+++ b/testsuite/tests/codeGen/should_fail/T13233.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE UnboxedTuples #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE MagicHash #-}
diff --git a/testsuite/tests/dependent/ghci/T11549.script b/testsuite/tests/dependent/ghci/T11549.script
index d8a0e97a61..3e0811f921 100644
--- a/testsuite/tests/dependent/ghci/T11549.script
+++ b/testsuite/tests/dependent/ghci/T11549.script
@@ -1,4 +1,4 @@
-:set -XTypeInType
+:set -XPolyKinds
import GHC.Exts
putStrLn "-fno-print-explicit-runtime-reps"
diff --git a/testsuite/tests/dependent/ghci/T14238.stdout b/testsuite/tests/dependent/ghci/T14238.stdout
index fddbc0de54..729f821af7 100644
--- a/testsuite/tests/dependent/ghci/T14238.stdout
+++ b/testsuite/tests/dependent/ghci/T14238.stdout
@@ -1 +1 @@
-Foo :: forall k -> k -> *
+Foo :: forall k -> k -> Type
diff --git a/testsuite/tests/dependent/should_compile/Dep1.hs b/testsuite/tests/dependent/should_compile/Dep1.hs
index 6f8fe0720d..086d759bbe 100644
--- a/testsuite/tests/dependent/should_compile/Dep1.hs
+++ b/testsuite/tests/dependent/should_compile/Dep1.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module Dep1 where
diff --git a/testsuite/tests/dependent/should_compile/Dep2.hs b/testsuite/tests/dependent/should_compile/Dep2.hs
index df1cb51e08..34be3cffc6 100644
--- a/testsuite/tests/dependent/should_compile/Dep2.hs
+++ b/testsuite/tests/dependent/should_compile/Dep2.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, GADTs #-}
+{-# LANGUAGE PolyKinds, GADTs #-}
module Dep2 where
diff --git a/testsuite/tests/dependent/should_compile/Dep3.hs b/testsuite/tests/dependent/should_compile/Dep3.hs
index cba5043a08..db10d2a8c6 100644
--- a/testsuite/tests/dependent/should_compile/Dep3.hs
+++ b/testsuite/tests/dependent/should_compile/Dep3.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeFamilies, TypeInType, GADTs #-}
+{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds, GADTs #-}
module Dep3 where
diff --git a/testsuite/tests/dependent/should_compile/DkNameRes.hs b/testsuite/tests/dependent/should_compile/DkNameRes.hs
new file mode 100644
index 0000000000..4110b33882
--- /dev/null
+++ b/testsuite/tests/dependent/should_compile/DkNameRes.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds #-}
+
+module DkNameRes where
+
+import Data.Proxy
+import Data.Kind
+
+type family IfK (e :: Proxy (j :: Bool)) :: Type where
+ IfK (_ :: Proxy True) = ()
diff --git a/testsuite/tests/dependent/should_compile/InferDependency.hs b/testsuite/tests/dependent/should_compile/InferDependency.hs
deleted file mode 100644
index 47957d47d6..0000000000
--- a/testsuite/tests/dependent/should_compile/InferDependency.hs
+++ /dev/null
@@ -1,6 +0,0 @@
-{-# LANGUAGE TypeInType #-}
-
-module InferDependency where
-
-data Proxy k (a :: k)
-data Proxy2 k a = P (Proxy k a)
diff --git a/testsuite/tests/dependent/should_compile/KindEqualities.hs b/testsuite/tests/dependent/should_compile/KindEqualities.hs
index 4cba8281ca..1caa46f7c3 100644
--- a/testsuite/tests/dependent/should_compile/KindEqualities.hs
+++ b/testsuite/tests/dependent/should_compile/KindEqualities.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, GADTs, ExplicitForAll #-}
+{-# LANGUAGE PolyKinds, GADTs, ExplicitForAll #-}
{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
module KindEqualities where
diff --git a/testsuite/tests/dependent/should_compile/KindEqualities2.hs b/testsuite/tests/dependent/should_compile/KindEqualities2.hs
index 5a6f60d40b..0bdfcfa034 100644
--- a/testsuite/tests/dependent/should_compile/KindEqualities2.hs
+++ b/testsuite/tests/dependent/should_compile/KindEqualities2.hs
@@ -1,6 +1,5 @@
{-# LANGUAGE DataKinds, GADTs, PolyKinds, TypeFamilies, ExplicitForAll,
- TemplateHaskell, UndecidableInstances, ScopedTypeVariables,
- TypeInType #-}
+ TemplateHaskell, UndecidableInstances, ScopedTypeVariables #-}
module KindEqualities2 where
diff --git a/testsuite/tests/dependent/should_compile/KindLevels.hs b/testsuite/tests/dependent/should_compile/KindLevels.hs
index 1aad299df3..5540ce40cd 100644
--- a/testsuite/tests/dependent/should_compile/KindLevels.hs
+++ b/testsuite/tests/dependent/should_compile/KindLevels.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module KindLevels where
diff --git a/testsuite/tests/dependent/should_compile/RAE_T32b.hs b/testsuite/tests/dependent/should_compile/RAE_T32b.hs
index 7e067099c9..ddd21db18d 100644
--- a/testsuite/tests/dependent/should_compile/RAE_T32b.hs
+++ b/testsuite/tests/dependent/should_compile/RAE_T32b.hs
@@ -1,23 +1,27 @@
{-# LANGUAGE TemplateHaskell, TypeFamilies, GADTs, DataKinds, PolyKinds,
- RankNTypes, TypeOperators, TypeInType #-}
+ RankNTypes, TypeOperators #-}
module RAE_T32b where
import Data.Kind
-data family Sing (k :: *) :: k -> *
+data family Sing (k :: Type) :: k -> Type
-data TyArr (a :: *) (b :: *) :: *
-type family (a :: TyArr k1 k2 -> *) @@ (b :: k1) :: k2
+data TyArr (a :: Type) (b :: Type) :: Type
+type family (a :: TyArr k1 k2 -> Type) @@ (b :: k1) :: k2
$(return [])
-data Sigma (p :: *) (r :: TyArr p * -> *) :: * where
- Sigma :: forall (p :: *) (r :: TyArr p * -> *) (a :: p) (b :: r @@ a).
- Sing * p -> Sing (TyArr p * -> *) r -> Sing p a -> Sing (r @@ a) b -> Sigma p r
+data Sigma (p :: Type) (r :: TyArr p Type -> Type) :: Type where
+ Sigma :: forall (p :: Type) (r :: TyArr p Type -> Type)
+ (a :: p) (b :: r @@ a).
+ Sing Type p -> Sing (TyArr p Type -> Type) r -> Sing p a ->
+ Sing (r @@ a) b -> Sigma p r
$(return [])
-data instance Sing (Sigma p r) (x :: Sigma p r) :: * where
- SSigma :: forall (p :: *) (r :: TyArr p * -> *) (a :: p) (b :: r @@ a)
- (sp :: Sing * p) (sr :: Sing (TyArr p * -> *) r) (sa :: Sing p a) (sb :: Sing (r @@ a) b).
+data instance Sing (Sigma p r) (x :: Sigma p r) :: Type where
+ SSigma :: forall (p :: Type) (r :: TyArr p Type -> Type)
+ (a :: p) (b :: r @@ a)
+ (sp :: Sing Type p) (sr :: Sing (TyArr p Type -> Type) r)
+ (sa :: Sing p a) (sb :: Sing (r @@ a) b).
Sing (Sing (r @@ a) b) sb ->
Sing (Sigma p r) ('Sigma sp sr sa sb)
diff --git a/testsuite/tests/dependent/should_compile/Rae31.hs b/testsuite/tests/dependent/should_compile/Rae31.hs
index cedc019cf3..7a50b606ee 100644
--- a/testsuite/tests/dependent/should_compile/Rae31.hs
+++ b/testsuite/tests/dependent/should_compile/Rae31.hs
@@ -1,24 +1,27 @@
{-# LANGUAGE TemplateHaskell, TypeOperators, PolyKinds, DataKinds,
- TypeFamilies, TypeInType #-}
+ TypeFamilies #-}
module A where
import Data.Kind
-data family Sing (k :: *) :: k -> *
+data family Sing (k :: Type) :: k -> Type
type Sing' (x :: k) = Sing k x
-data TyFun' (a :: *) (b :: *) :: *
-type TyFun (a :: *) (b :: *) = TyFun' a b -> *
+data TyFun' (a :: Type) (b :: Type) :: Type
+type TyFun (a :: Type) (b :: Type) = TyFun' a b -> Type
type family (a :: TyFun k1 k2) @@ (b :: k1) :: k2
-data TyPi' (a :: *) (b :: TyFun a *) :: *
-type TyPi (a :: *) (b :: TyFun a *) = TyPi' a b -> *
+data TyPi' (a :: Type) (b :: TyFun a Type) :: Type
+type TyPi (a :: Type) (b :: TyFun a Type) = TyPi' a b -> Type
type family (a :: TyPi k1 k2) @@@ (b :: k1) :: k2 @@ b
$(return [])
-data A (a :: *) (b :: a) (c :: TyFun' a *) -- A :: forall a -> a -> a ~> *
-type instance (@@) (A a b) c = *
+data A (a :: Type) (b :: a) (c :: TyFun' a Type)
+ -- A :: forall a -> a -> a ~> Type
+type instance (@@) (A a b) c = Type
$(return [])
-data B (a :: *) (b :: TyFun' a *) -- B :: forall a -> a ~> *
+data B (a :: Type) (b :: TyFun' a Type)
+ -- B :: forall a -> a ~> Type
type instance (@@) (B a) b = TyPi a (A a b)
$(return [])
-data C (a :: *) (b :: TyPi a (B a)) (c :: a) (d :: a) (e :: TyFun' (b @@@ c @@@ d) *)
+data C (a :: Type) (b :: TyPi a (B a)) (c :: a) (d :: a)
+ (e :: TyFun' (b @@@ c @@@ d) Type)
diff --git a/testsuite/tests/dependent/should_compile/RaeBlogPost.hs b/testsuite/tests/dependent/should_compile/RaeBlogPost.hs
index e99c7b5dd5..b048a49e44 100644
--- a/testsuite/tests/dependent/should_compile/RaeBlogPost.hs
+++ b/testsuite/tests/dependent/should_compile/RaeBlogPost.hs
@@ -1,5 +1,4 @@
-{-# LANGUAGE DataKinds, PolyKinds, GADTs, TypeOperators, TypeFamilies,
- TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds, GADTs, TypeOperators, TypeFamilies #-}
{-# OPTIONS_GHC -fwarn-unticked-promoted-constructors #-}
module RaeBlogPost where
@@ -8,7 +7,7 @@ import Data.Kind
-- a Proxy type with an explicit kind
data Proxy k (a :: k) = P
-prox :: Proxy * Bool
+prox :: Proxy Type Bool
prox = P
prox2 :: Proxy Bool 'True
@@ -16,11 +15,11 @@ prox2 = P
-- implicit kinds still work
data A
-data B :: A -> *
-data C :: B a -> *
-data D :: C b -> *
-data E :: D c -> *
--- note that E :: forall (a :: A) (b :: B a) (c :: C b). D c -> *
+data B :: A -> Type
+data C :: B a -> Type
+data D :: C b -> Type
+data E :: D c -> Type
+-- note that E :: forall (a :: A) (b :: B a) (c :: C b). D c -> Type
-- a kind-indexed GADT
data TypeRep (a :: k) where
@@ -37,7 +36,7 @@ type family a + b where
'Zero + b = b
('Succ a) + b = 'Succ (a + b)
-data Vec :: * -> Nat -> * where
+data Vec :: Type -> Nat -> Type where
Nil :: Vec a 'Zero
(:>) :: a -> Vec a n -> Vec a ('Succ n)
infixr 5 :>
@@ -47,17 +46,17 @@ type family (x :: Vec a n) ++ (y :: Vec a m) :: Vec a (n + m) where
'Nil ++ y = y
(h ':> t) ++ y = h ':> (t ++ y)
--- datatype that mentions *
-data U = Star (*)
+-- datatype that mentions Type
+data U = Star (Type)
| Bool Bool
-- kind synonym
-type Monadish = * -> *
+type Monadish = Type -> Type
class MonadTrans (t :: Monadish -> Monadish) where
lift :: Monad m => m a -> t m a
data Free :: Monadish where
Return :: a -> Free a
Bind :: Free a -> (a -> Free b) -> Free b
--- yes, * really does have type *.
-type Star = (* :: (* :: (* :: *)))
+-- yes, Type really does have type Type.
+type Star = (Type :: (Type :: (Type :: Type)))
diff --git a/testsuite/tests/dependent/should_compile/RaeJobTalk.hs b/testsuite/tests/dependent/should_compile/RaeJobTalk.hs
index 480db090c3..1a22573109 100644
--- a/testsuite/tests/dependent/should_compile/RaeJobTalk.hs
+++ b/testsuite/tests/dependent/should_compile/RaeJobTalk.hs
@@ -3,7 +3,7 @@
{-# LANGUAGE TypeOperators, TypeFamilies, TypeApplications, AllowAmbiguousTypes,
ExplicitForAll, ScopedTypeVariables, GADTs, TypeFamilyDependencies,
- TypeInType, ConstraintKinds, UndecidableInstances,
+ DataKinds, PolyKinds , ConstraintKinds, UndecidableInstances,
FlexibleInstances, MultiParamTypeClasses, FunctionalDependencies,
FlexibleContexts, StandaloneDeriving, InstanceSigs,
RankNTypes, UndecidableSuperClasses #-}
diff --git a/testsuite/tests/dependent/should_compile/T11405.hs b/testsuite/tests/dependent/should_compile/T11405.hs
index cdb713f118..5fdd7baed1 100644
--- a/testsuite/tests/dependent/should_compile/T11405.hs
+++ b/testsuite/tests/dependent/should_compile/T11405.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE ImplicitParams, TypeInType, ExplicitForAll #-}
+{-# LANGUAGE ImplicitParams, PolyKinds, ExplicitForAll #-}
module T11405 where
diff --git a/testsuite/tests/dependent/should_compile/T11635.hs b/testsuite/tests/dependent/should_compile/T11635.hs
index 2292def966..61d9978e55 100644
--- a/testsuite/tests/dependent/should_compile/T11635.hs
+++ b/testsuite/tests/dependent/should_compile/T11635.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, KindSignatures, ExplicitForAll, RankNTypes #-}
+{-# LANGUAGE PolyKinds, KindSignatures, ExplicitForAll, RankNTypes #-}
module T11635 where
diff --git a/testsuite/tests/dependent/should_compile/T11711.hs b/testsuite/tests/dependent/should_compile/T11711.hs
index 0cd4dceb42..814b2a4a68 100644
--- a/testsuite/tests/dependent/should_compile/T11711.hs
+++ b/testsuite/tests/dependent/should_compile/T11711.hs
@@ -5,7 +5,6 @@
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE ViewPatterns #-}
-{-# LANGUAGE TypeInType #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE FlexibleInstances #-}
diff --git a/testsuite/tests/dependent/should_compile/T11719.hs b/testsuite/tests/dependent/should_compile/T11719.hs
index ba4d7c9db4..e4c2a89bf2 100644
--- a/testsuite/tests/dependent/should_compile/T11719.hs
+++ b/testsuite/tests/dependent/should_compile/T11719.hs
@@ -1,12 +1,12 @@
-{-# LANGUAGE RankNTypes, TypeFamilies, TypeInType, TypeOperators,
+{-# LANGUAGE RankNTypes, TypeFamilies, TypeOperators, DataKinds, PolyKinds,
UndecidableInstances #-}
module T11719 where
import Data.Kind
-data TyFun :: * -> * -> *
-type a ~> b = TyFun a b -> *
+data TyFun :: Type -> Type -> Type
+type a ~> b = TyFun a b -> Type
type family (f :: a ~> b) @@ (x :: a) :: b
diff --git a/testsuite/tests/dependent/should_compile/T11966.hs b/testsuite/tests/dependent/should_compile/T11966.hs
index 0262a0aed3..daad450f13 100644
--- a/testsuite/tests/dependent/should_compile/T11966.hs
+++ b/testsuite/tests/dependent/should_compile/T11966.hs
@@ -3,7 +3,6 @@
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE TypeInType #-}
{-# LANGUAGE TypeOperators #-}
module T11966 where
diff --git a/testsuite/tests/dependent/should_compile/T12176.hs b/testsuite/tests/dependent/should_compile/T12176.hs
index 0e340068a7..a11c151567 100644
--- a/testsuite/tests/dependent/should_compile/T12176.hs
+++ b/testsuite/tests/dependent/should_compile/T12176.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE RankNTypes, TypeInType, GADTs, TypeFamilies #-}
+{-# LANGUAGE RankNTypes, DataKinds, PolyKinds, GADTs, TypeFamilies #-}
module T12176 where
diff --git a/testsuite/tests/dependent/should_compile/T12442.hs b/testsuite/tests/dependent/should_compile/T12442.hs
index f9dbf0a486..c76dfb962e 100644
--- a/testsuite/tests/dependent/should_compile/T12442.hs
+++ b/testsuite/tests/dependent/should_compile/T12442.hs
@@ -1,7 +1,7 @@
-- Based on https://github.com/idris-lang/Idris-dev/blob/v0.9.10/libs/effects/Effects.idr
-{-# LANGUAGE TypeInType, ScopedTypeVariables, TypeOperators, TypeApplications,
- GADTs, TypeFamilies, AllowAmbiguousTypes #-}
+{-# LANGUAGE DataKinds, PolyKinds, ScopedTypeVariables, TypeOperators,
+ TypeApplications, GADTs, TypeFamilies, AllowAmbiguousTypes #-}
module T12442 where
diff --git a/testsuite/tests/dependent/should_compile/T12742.hs b/testsuite/tests/dependent/should_compile/T12742.hs
index baa3e2c071..988d7c318a 100644
--- a/testsuite/tests/dependent/should_compile/T12742.hs
+++ b/testsuite/tests/dependent/should_compile/T12742.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, RankNTypes, TypeFamilies #-}
+{-# LANGUAGE DataKinds, PolyKinds, RankNTypes, TypeFamilies #-}
module T12742 where
diff --git a/testsuite/tests/dependent/should_compile/T13910.hs b/testsuite/tests/dependent/should_compile/T13910.hs
index 82d47e45bc..b3707dd365 100644
--- a/testsuite/tests/dependent/should_compile/T13910.hs
+++ b/testsuite/tests/dependent/should_compile/T13910.hs
@@ -7,7 +7,8 @@
{-# LANGUAGE Trustworthy #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilyDependencies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module T13910 where
@@ -17,7 +18,7 @@ import Data.Type.Equality
data family Sing (a :: k)
class SingKind k where
- type Demote k = (r :: *) | r -> k
+ type Demote k = (r :: Type) | r -> k
fromSing :: Sing (a :: k) -> Demote k
toSing :: Demote k -> SomeSing k
@@ -33,8 +34,8 @@ withSomeSing x f =
case toSing x of
SomeSing x' -> f x'
-data TyFun :: * -> * -> *
-type a ~> b = TyFun a b -> *
+data TyFun :: Type -> Type -> Type
+type a ~> b = TyFun a b -> Type
infixr 0 ~>
type family Apply (f :: k1 ~> k2) (x :: k1) :: k2
diff --git a/testsuite/tests/dependent/should_compile/T13938.hs b/testsuite/tests/dependent/should_compile/T13938.hs
index dd4f3d6c7c..1ce77d194f 100644
--- a/testsuite/tests/dependent/should_compile/T13938.hs
+++ b/testsuite/tests/dependent/should_compile/T13938.hs
@@ -4,7 +4,8 @@
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
module T13938 where
diff --git a/testsuite/tests/dependent/should_compile/T13938a.hs b/testsuite/tests/dependent/should_compile/T13938a.hs
index 3a09292922..5197747e87 100644
--- a/testsuite/tests/dependent/should_compile/T13938a.hs
+++ b/testsuite/tests/dependent/should_compile/T13938a.hs
@@ -7,7 +7,8 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module T13938a where
diff --git a/testsuite/tests/dependent/should_compile/T14038.hs b/testsuite/tests/dependent/should_compile/T14038.hs
index 839220a0ce..04b24b9f9e 100644
--- a/testsuite/tests/dependent/should_compile/T14038.hs
+++ b/testsuite/tests/dependent/should_compile/T14038.hs
@@ -6,7 +6,8 @@
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module T14038 where
diff --git a/testsuite/tests/dependent/should_compile/T14066a.hs b/testsuite/tests/dependent/should_compile/T14066a.hs
index e1a6255520..30b203d31b 100644
--- a/testsuite/tests/dependent/should_compile/T14066a.hs
+++ b/testsuite/tests/dependent/should_compile/T14066a.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeFamilies, TypeInType, ExplicitForAll, GADTs,
+{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds, ExplicitForAll, GADTs,
UndecidableInstances, RankNTypes, ScopedTypeVariables #-}
module T14066a where
diff --git a/testsuite/tests/dependent/should_compile/T14556.hs b/testsuite/tests/dependent/should_compile/T14556.hs
index eebbdca888..133a9e6a44 100644
--- a/testsuite/tests/dependent/should_compile/T14556.hs
+++ b/testsuite/tests/dependent/should_compile/T14556.hs
@@ -1,4 +1,5 @@
-{-# Language UndecidableInstances, DataKinds, TypeOperators, KindSignatures, PolyKinds, TypeInType, TypeFamilies, GADTs, LambdaCase, ScopedTypeVariables #-}
+{-# Language UndecidableInstances, DataKinds, TypeOperators, PolyKinds,
+ TypeFamilies, GADTs, LambdaCase, ScopedTypeVariables #-}
module T14556 where
diff --git a/testsuite/tests/dependent/should_compile/T14720.hs b/testsuite/tests/dependent/should_compile/T14720.hs
index c26a184689..0f053756f5 100644
--- a/testsuite/tests/dependent/should_compile/T14720.hs
+++ b/testsuite/tests/dependent/should_compile/T14720.hs
@@ -3,7 +3,8 @@
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module T14720 where
diff --git a/testsuite/tests/dependent/should_compile/T14749.hs b/testsuite/tests/dependent/should_compile/T14749.hs
index 79bcce66ff..c4480fad0f 100644
--- a/testsuite/tests/dependent/should_compile/T14749.hs
+++ b/testsuite/tests/dependent/should_compile/T14749.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE GADTs, TypeOperators, DataKinds, TypeFamilies, TypeInType #-}
+{-# LANGUAGE GADTs, TypeOperators, DataKinds, TypeFamilies, PolyKinds #-}
module T14749 where
diff --git a/testsuite/tests/dependent/should_compile/T14991.hs b/testsuite/tests/dependent/should_compile/T14991.hs
index f435c37690..b2f5642ec5 100644
--- a/testsuite/tests/dependent/should_compile/T14991.hs
+++ b/testsuite/tests/dependent/should_compile/T14991.hs
@@ -1,5 +1,6 @@
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
module T14991 where
diff --git a/testsuite/tests/dependent/should_compile/T9632.hs b/testsuite/tests/dependent/should_compile/T9632.hs
index bea468fff3..f2099aa22b 100644
--- a/testsuite/tests/dependent/should_compile/T9632.hs
+++ b/testsuite/tests/dependent/should_compile/T9632.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T9632 where
diff --git a/testsuite/tests/dependent/should_compile/TypeLevelVec.hs b/testsuite/tests/dependent/should_compile/TypeLevelVec.hs
index 19f605c8cd..0e2f0c7744 100644
--- a/testsuite/tests/dependent/should_compile/TypeLevelVec.hs
+++ b/testsuite/tests/dependent/should_compile/TypeLevelVec.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, UnicodeSyntax, GADTs, NoImplicitPrelude,
+{-# LANGUAGE DataKinds, PolyKinds, UnicodeSyntax, GADTs, NoImplicitPrelude,
TypeOperators, TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unticked-promoted-constructors #-}
diff --git a/testsuite/tests/dependent/should_compile/all.T b/testsuite/tests/dependent/should_compile/all.T
index e153cafe41..40ba2110f9 100644
--- a/testsuite/tests/dependent/should_compile/all.T
+++ b/testsuite/tests/dependent/should_compile/all.T
@@ -48,3 +48,4 @@ test('T14720', normal, compile, [''])
test('T14066a', normal, compile, [''])
test('T14749', normal, compile, [''])
test('T14991', normal, compile, [''])
+test('DkNameRes', normal, compile, ['']) \ No newline at end of file
diff --git a/testsuite/tests/dependent/should_compile/dynamic-paper.hs b/testsuite/tests/dependent/should_compile/dynamic-paper.hs
index 1aa4ee54d9..2c284cfeea 100644
--- a/testsuite/tests/dependent/should_compile/dynamic-paper.hs
+++ b/testsuite/tests/dependent/should_compile/dynamic-paper.hs
@@ -7,7 +7,7 @@ Stephanie Weirich, Richard Eisenberg, and Dimitrios Vytiniotis, 2016. -}
{-# LANGUAGE RankNTypes, PolyKinds, TypeOperators,
ScopedTypeVariables, GADTs, FlexibleInstances,
UndecidableInstances, RebindableSyntax,
- DataKinds, MagicHash, AutoDeriveTypeable, TypeInType #-}
+ DataKinds, MagicHash, AutoDeriveTypeable #-}
{-# OPTIONS_GHC -Wno-missing-methods -Wno-redundant-constraints #-}
{-# OPTIONS_GHC -Wno-simplifiable-class-constraints #-}
-- Because we define a local Typeable class and have
@@ -127,7 +127,7 @@ gcast x = do Refl <- eqT (typeRep :: TypeRep a)
(typeRep :: TypeRep b)
return x
-data SameKind :: k -> k -> *
+data SameKind :: k -> k -> Type
type CheckAppResult = SameKind AppResult AppResultNoKind
-- not the most thorough check
foo :: AppResult x -> AppResultNoKind x
@@ -170,17 +170,20 @@ dynFst :: Dynamic -> Maybe Dynamic
dynFst (Dyn (rpab :: TypeRep pab) (x :: pab))
= do App (rpa :: TypeRep pa ) (rb :: TypeRep b) <- splitApp rpab
- -- introduces kind |k2|, and types |pa :: k2 -> *|, |b :: k2|
+ -- introduces kind |k2|, and types |pa :: k2 -> Type|, |b :: k2|
App (rp :: TypeRep p ) (ra :: TypeRep a) <- splitApp rpa
- -- introduces kind |k1|, and types |p :: k1 -> k2 -> *|, |a :: k1|
+ -- introduces kind |k1|, and types |p :: k1 -> k2 -> Type|,
+ -- |a :: k1|
Refl <- eqT rp (typeRep :: TypeRep (,))
- -- introduces |p ~ (,)| and |(k1 -> k2 -> *) ~ (* -> * -> *)|
+ -- introduces |p ~ (,)| and
+ -- |(k1 -> k2 -> Type) ~ (Type -> Type -> Type)|
return (Dyn ra (fst x))
-eqT :: forall k1 k2 (a :: k1) (b :: k2). TypeRep a -> TypeRep b -> Maybe (a :~: b)
+eqT :: forall k1 k2 (a :: k1) (b :: k2).
+ TypeRep a -> TypeRep b -> Maybe (a :~: b)
data (a :: k1) :~: (b :: k2) where
Refl :: forall k (a :: k). a :~: a
@@ -201,11 +204,13 @@ data SomeTypeRep where
type TyMapLessTyped = Map SomeTypeRep Dynamic
-insertLessTyped :: forall a. Typeable a => a -> TyMapLessTyped -> TyMapLessTyped
-insertLessTyped x = Map.insert (SomeTypeRep (typeRep :: TypeRep a)) (toDynamic x)
+insertLessTyped :: forall a. Typeable a => a -> TyMapLessTyped -> TyMapLessTyped
+insertLessTyped x
+ = Map.insert (SomeTypeRep (typeRep :: TypeRep a)) (toDynamic x)
-lookupLessTyped :: forall a. Typeable a => TyMapLessTyped -> Maybe a
-lookupLessTyped = fromDynamic <=< Map.lookup (SomeTypeRep (typeRep :: TypeRep a))
+lookupLessTyped :: forall a. Typeable a => TyMapLessTyped -> Maybe a
+lookupLessTyped
+ = fromDynamic <=< Map.lookup (SomeTypeRep (typeRep :: TypeRep a))
instance Ord SomeTypeRep where
compare (SomeTypeRep tr1) (SomeTypeRep tr2) = compareTypeRep tr1 tr2
@@ -329,7 +334,7 @@ dynApplyOld (DynOld trf f) (DynOld trx x) =
data DynamicClosed where
DynClosed :: TypeRepClosed a -> a -> DynamicClosed
-data TypeRepClosed (a :: *) where
+data TypeRepClosed (a :: Type) where
TBool :: TypeRepClosed Bool
TFun :: TypeRepClosed a -> TypeRepClosed b -> TypeRepClosed (a -> b)
TProd :: TypeRepClosed a -> TypeRepClosed b -> TypeRepClosed (a, b)
diff --git a/testsuite/tests/dependent/should_compile/mkGADTVars.hs b/testsuite/tests/dependent/should_compile/mkGADTVars.hs
index 1e74c6980a..9b48e8c395 100644
--- a/testsuite/tests/dependent/should_compile/mkGADTVars.hs
+++ b/testsuite/tests/dependent/should_compile/mkGADTVars.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE GADTs, TypeInType #-}
+{-# LANGUAGE GADTs, PolyKinds #-}
module GADTVars where
diff --git a/testsuite/tests/dependent/should_fail/BadTelescope.hs b/testsuite/tests/dependent/should_fail/BadTelescope.hs
index acabffec54..11b52f36e2 100644
--- a/testsuite/tests/dependent/should_fail/BadTelescope.hs
+++ b/testsuite/tests/dependent/should_fail/BadTelescope.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module BadTelescope where
diff --git a/testsuite/tests/dependent/should_fail/BadTelescope2.hs b/testsuite/tests/dependent/should_fail/BadTelescope2.hs
index 6237df4488..b12adbd8e3 100644
--- a/testsuite/tests/dependent/should_fail/BadTelescope2.hs
+++ b/testsuite/tests/dependent/should_fail/BadTelescope2.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, ExplicitForAll #-}
+{-# LANGUAGE DataKinds, PolyKinds, ExplicitForAll #-}
module BadTelescope2 where
diff --git a/testsuite/tests/dependent/should_fail/BadTelescope3.hs b/testsuite/tests/dependent/should_fail/BadTelescope3.hs
index 807479f634..470f5fb9fe 100644
--- a/testsuite/tests/dependent/should_fail/BadTelescope3.hs
+++ b/testsuite/tests/dependent/should_fail/BadTelescope3.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, ExplicitForAll #-}
+{-# LANGUAGE PolyKinds, ExplicitForAll #-}
module BadTelescope3 where
diff --git a/testsuite/tests/dependent/should_fail/BadTelescope4.hs b/testsuite/tests/dependent/should_fail/BadTelescope4.hs
index 566922a4a0..bdaf674c2f 100644
--- a/testsuite/tests/dependent/should_fail/BadTelescope4.hs
+++ b/testsuite/tests/dependent/should_fail/BadTelescope4.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE ExistentialQuantification, TypeInType #-}
+{-# LANGUAGE ExistentialQuantification, DataKinds, PolyKinds #-}
module BadTelescope4 where
import Data.Proxy
diff --git a/testsuite/tests/dependent/should_fail/DepFail1.hs b/testsuite/tests/dependent/should_fail/DepFail1.hs
index 425a8159c4..26e5d46832 100644
--- a/testsuite/tests/dependent/should_fail/DepFail1.hs
+++ b/testsuite/tests/dependent/should_fail/DepFail1.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module DepFail1 where
diff --git a/testsuite/tests/dependent/should_fail/InferDependency.hs b/testsuite/tests/dependent/should_fail/InferDependency.hs
index 47957d47d6..c2bec19d44 100644
--- a/testsuite/tests/dependent/should_fail/InferDependency.hs
+++ b/testsuite/tests/dependent/should_fail/InferDependency.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module InferDependency where
diff --git a/testsuite/tests/dependent/should_fail/KindLevelsB.hs b/testsuite/tests/dependent/should_fail/KindLevelsB.hs
deleted file mode 100644
index 80762978b2..0000000000
--- a/testsuite/tests/dependent/should_fail/KindLevelsB.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds, PolyKinds #-}
-
-module KindLevels where
-
-data A
-data B :: A -> *
-data C :: B a -> *
-data D :: C b -> *
-data E :: D c -> *
diff --git a/testsuite/tests/dependent/should_fail/KindLevelsB.stderr b/testsuite/tests/dependent/should_fail/KindLevelsB.stderr
deleted file mode 100644
index 587eb97bfa..0000000000
--- a/testsuite/tests/dependent/should_fail/KindLevelsB.stderr
+++ /dev/null
@@ -1,5 +0,0 @@
-
-KindLevelsB.hs:7:13: error:
- • Expected kind ‘A’, but ‘a’ has kind ‘*’
- • In the first argument of ‘B’, namely ‘a’
- In the kind ‘B a -> *’
diff --git a/testsuite/tests/dependent/should_fail/PromotedClass.hs b/testsuite/tests/dependent/should_fail/PromotedClass.hs
index 6c3f415e5d..53d581015d 100644
--- a/testsuite/tests/dependent/should_fail/PromotedClass.hs
+++ b/testsuite/tests/dependent/should_fail/PromotedClass.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, GADTs #-}
+{-# LANGUAGE DataKinds, GADTs #-}
module PromotedClass where
diff --git a/testsuite/tests/dependent/should_fail/RAE_T32a.hs b/testsuite/tests/dependent/should_fail/RAE_T32a.hs
index 08a4ad78a8..d71b863f02 100644
--- a/testsuite/tests/dependent/should_fail/RAE_T32a.hs
+++ b/testsuite/tests/dependent/should_fail/RAE_T32a.hs
@@ -1,34 +1,36 @@
{-# LANGUAGE TemplateHaskell, RankNTypes, TypeOperators, DataKinds,
- PolyKinds, TypeFamilies, GADTs, TypeInType #-}
+ PolyKinds, TypeFamilies, GADTs #-}
module RAE_T32a where
import Data.Kind
-data family Sing (k :: *) :: k -> *
+data family Sing (k :: Type) :: k -> Type
-data TyArr' (a :: *) (b :: *) :: *
-type TyArr (a :: *) (b :: *) = TyArr' a b -> *
+data TyArr' (a :: Type) (b :: Type) :: Type
+type TyArr (a :: Type) (b :: Type) = TyArr' a b -> Type
type family (a :: TyArr k1 k2) @@ (b :: k1) :: k2
-data TyPi' (a :: *) (b :: TyArr a *) :: *
-type TyPi (a :: *) (b :: TyArr a *) = TyPi' a b -> *
+data TyPi' (a :: Type) (b :: TyArr a Type) :: Type
+type TyPi (a :: Type) (b :: TyArr a Type) = TyPi' a b -> Type
type family (a :: TyPi k1 k2) @@@ (b :: k1) :: k2 @@ b
$(return [])
-data MkStar (p :: *) (x :: TyArr' p *)
-type instance MkStar p @@ x = *
+data MkStar (p :: Type) (x :: TyArr' p Type)
+type instance MkStar p @@ x = Type
$(return [])
-data Sigma (p :: *) (r :: TyPi p (MkStar p)) :: * where
+data Sigma (p :: Type) (r :: TyPi p (MkStar p)) :: Type where
Sigma ::
- forall (p :: *) (r :: TyPi p (MkStar p)) (a :: p) (b :: r @@@ a).
- Sing * p -> Sing (TyPi p (MkStar p)) r -> Sing p a -> Sing (r @@@ a) b -> Sigma p r
+ forall (p :: Type) (r :: TyPi p (MkStar p)) (a :: p) (b :: r @@@ a).
+ Sing Type p -> Sing (TyPi p (MkStar p)) r -> Sing p a ->
+ Sing (r @@@ a) b -> Sigma p r
$(return [])
data instance Sing Sigma (Sigma p r) x where
SSigma ::
- forall (p :: *) (r :: TyPi p (MkStar p)) (a :: p) (b :: r @@@ a)
- (sp :: Sing * p) (sr :: Sing (TyPi p (MkStar p)) r) (sa :: Sing p a) (sb :: Sing (r @@@ a) b).
+ forall (p :: Type) (r :: TyPi p (MkStar p)) (a :: p) (b :: r @@@ a)
+ (sp :: Sing Type p) (sr :: Sing (TyPi p (MkStar p)) r)
+ (sa :: Sing p a) (sb :: Sing (r @@@ a) b).
Sing (Sing (r @@@ a) b) sb ->
Sing (Sigma p r) ('Sigma sp sr sa sb)
diff --git a/testsuite/tests/dependent/should_fail/RAE_T32a.stderr b/testsuite/tests/dependent/should_fail/RAE_T32a.stderr
index 046a1e1aa4..41f5d7cd4c 100644
--- a/testsuite/tests/dependent/should_fail/RAE_T32a.stderr
+++ b/testsuite/tests/dependent/should_fail/RAE_T32a.stderr
@@ -1,10 +1,10 @@
-RAE_T32a.hs:28:1: error:
+RAE_T32a.hs:29:1: error:
• Expected kind ‘k0 -> *’,
but ‘Sing Sigma (Sigma p r)’ has kind ‘*’
• In the data instance declaration for ‘Sing’
-RAE_T32a.hs:28:20: error:
+RAE_T32a.hs:29:20: error:
• Expecting two more arguments to ‘Sigma’
Expected a type, but
‘Sigma’ has kind
@@ -12,7 +12,7 @@ RAE_T32a.hs:28:20: error:
• In the first argument of ‘Sing’, namely ‘Sigma’
In the data instance declaration for ‘Sing’
-RAE_T32a.hs:28:27: error:
+RAE_T32a.hs:29:27: error:
• Expected kind ‘Sigma’, but ‘Sigma p r’ has kind ‘*’
• In the second argument of ‘Sing’, namely ‘(Sigma p r)’
In the data instance declaration for ‘Sing’
diff --git a/testsuite/tests/dependent/should_fail/RenamingStar.hs b/testsuite/tests/dependent/should_fail/RenamingStar.hs
index 255021c8d9..f9344b0fd9 100644
--- a/testsuite/tests/dependent/should_fail/RenamingStar.hs
+++ b/testsuite/tests/dependent/should_fail/RenamingStar.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE KindSignatures, NoStarIsType #-}
module RenamingStar where
diff --git a/testsuite/tests/dependent/should_fail/RenamingStar.stderr b/testsuite/tests/dependent/should_fail/RenamingStar.stderr
index 5efda699fd..4001811f1f 100644
--- a/testsuite/tests/dependent/should_fail/RenamingStar.stderr
+++ b/testsuite/tests/dependent/should_fail/RenamingStar.stderr
@@ -1,11 +1,5 @@
RenamingStar.hs:5:13: error:
- Not in scope: type constructor or class ‘*’
- NB: With TypeInType, you must import * from Data.Kind
-
-RenamingStar.hs:5:13: error:
- Illegal operator ‘*’ in type ‘*’
- Use TypeOperators to allow operators in types
-
-RenamingStar.hs:5:13: error:
Operator applied to too few arguments: *
+ With NoStarIsType, ‘*’ is treated as a regular type operator.
+ Did you mean to use ‘Type’ from Data.Kind instead?
diff --git a/testsuite/tests/dependent/should_fail/SelfDep.hs b/testsuite/tests/dependent/should_fail/SelfDep.hs
index f54b92752b..22ac9ede98 100644
--- a/testsuite/tests/dependent/should_fail/SelfDep.hs
+++ b/testsuite/tests/dependent/should_fail/SelfDep.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE KindSignatures #-}
+
module SelfDep where
data T :: T -> *
diff --git a/testsuite/tests/dependent/should_fail/SelfDep.stderr b/testsuite/tests/dependent/should_fail/SelfDep.stderr
index f4014f7277..8ac4be8c0c 100644
--- a/testsuite/tests/dependent/should_fail/SelfDep.stderr
+++ b/testsuite/tests/dependent/should_fail/SelfDep.stderr
@@ -1,5 +1,5 @@
-SelfDep.hs:3:11: error:
- Type constructor ‘T’ cannot be used here
- (it is defined and used in the same recursive group)
- In the kind ‘T -> *’
+SelfDep.hs:5:11: error:
+ • Type constructor ‘T’ cannot be used here
+ (it is defined and used in the same recursive group)
+ • In the kind ‘T -> *’
diff --git a/testsuite/tests/dependent/should_fail/T11407.hs b/testsuite/tests/dependent/should_fail/T11407.hs
index 533870f94b..e94eaba1e7 100644
--- a/testsuite/tests/dependent/should_fail/T11407.hs
+++ b/testsuite/tests/dependent/should_fail/T11407.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T11407 where
import Data.Kind
diff --git a/testsuite/tests/dependent/should_fail/T11473.hs b/testsuite/tests/dependent/should_fail/T11473.hs
index 12d95caac6..ebfeeb8a13 100644
--- a/testsuite/tests/dependent/should_fail/T11473.hs
+++ b/testsuite/tests/dependent/should_fail/T11473.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE PolyKinds, TypeFamilies, MagicHash, DataKinds, TypeInType, RankNTypes #-}
+{-# LANGUAGE PolyKinds, TypeFamilies, MagicHash, DataKinds, RankNTypes #-}
module T11473 where
diff --git a/testsuite/tests/dependent/should_fail/T12081.hs b/testsuite/tests/dependent/should_fail/T12081.hs
index f68de420cb..0bf03b1950 100644
--- a/testsuite/tests/dependent/should_fail/T12081.hs
+++ b/testsuite/tests/dependent/should_fail/T12081.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T12081 where
diff --git a/testsuite/tests/dependent/should_fail/T12174.hs b/testsuite/tests/dependent/should_fail/T12174.hs
index 29064d6a96..800759d690 100644
--- a/testsuite/tests/dependent/should_fail/T12174.hs
+++ b/testsuite/tests/dependent/should_fail/T12174.hs
@@ -1,7 +1,7 @@
{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE KindSignatures #-}
-{-# LANGUAGE TypeInType #-}
module T12174 where
data V a
diff --git a/testsuite/tests/dependent/should_fail/T13135.hs b/testsuite/tests/dependent/should_fail/T13135.hs
index 772ac78bfa..8f78ccbfb1 100644
--- a/testsuite/tests/dependent/should_fail/T13135.hs
+++ b/testsuite/tests/dependent/should_fail/T13135.hs
@@ -8,11 +8,11 @@
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
-{-# LANGUAGE TypeInType #-}
{-# LANGUAGE TypeFamilyDependencies #-}
-module T12135 where
+
+module T13135 where
import Data.Kind (Type)
diff --git a/testsuite/tests/dependent/should_fail/T13601.hs b/testsuite/tests/dependent/should_fail/T13601.hs
index 5e98c7a657..a8fa34d4a0 100644
--- a/testsuite/tests/dependent/should_fail/T13601.hs
+++ b/testsuite/tests/dependent/should_fail/T13601.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeFamilies, DataKinds, TypeInType #-}
+{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds #-}
import GHC.Exts
import Prelude (Bool(True,False),Integer,Ordering,undefined)
diff --git a/testsuite/tests/dependent/should_fail/T13780a.hs b/testsuite/tests/dependent/should_fail/T13780a.hs
index 1f7c95c40a..b7e1510672 100644
--- a/testsuite/tests/dependent/should_fail/T13780a.hs
+++ b/testsuite/tests/dependent/should_fail/T13780a.hs
@@ -1,6 +1,6 @@
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T13780a where
data family Sing (a :: k)
diff --git a/testsuite/tests/dependent/should_fail/T13780b.hs b/testsuite/tests/dependent/should_fail/T13780b.hs
index 238e7a1af9..dc6ac89c08 100644
--- a/testsuite/tests/dependent/should_fail/T13780b.hs
+++ b/testsuite/tests/dependent/should_fail/T13780b.hs
@@ -1,6 +1,7 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
module T13780b where
data family Sing (a :: k)
diff --git a/testsuite/tests/dependent/should_fail/T13780c.hs b/testsuite/tests/dependent/should_fail/T13780c.hs
index eee6436237..78e09f5ef1 100644
--- a/testsuite/tests/dependent/should_fail/T13780c.hs
+++ b/testsuite/tests/dependent/should_fail/T13780c.hs
@@ -1,6 +1,6 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T13780c where
import Data.Kind
diff --git a/testsuite/tests/dependent/should_fail/T13780c.stderr b/testsuite/tests/dependent/should_fail/T13780c.stderr
index 065c700dfc..9a196f4bd7 100644
--- a/testsuite/tests/dependent/should_fail/T13780c.stderr
+++ b/testsuite/tests/dependent/should_fail/T13780c.stderr
@@ -2,11 +2,13 @@
[2 of 2] Compiling T13780c ( T13780c.hs, T13780c.o )
T13780c.hs:11:16: error:
- • Expected kind ‘Sing _1’, but ‘SFalse’ has kind ‘Sing 'False’
+ • Data constructor ‘SFalse’ cannot be used here
+ (it comes from a data family instance)
• In the third argument of ‘ElimBool’, namely ‘SFalse’
In the type family declaration for ‘ElimBool’
T13780c.hs:12:16: error:
- • Expected kind ‘Sing _1’, but ‘STrue’ has kind ‘Sing 'True’
+ • Data constructor ‘STrue’ cannot be used here
+ (it comes from a data family instance)
• In the third argument of ‘ElimBool’, namely ‘STrue’
In the type family declaration for ‘ElimBool’
diff --git a/testsuite/tests/dependent/should_fail/T14066.hs b/testsuite/tests/dependent/should_fail/T14066.hs
index 58396df591..709d507a34 100644
--- a/testsuite/tests/dependent/should_fail/T14066.hs
+++ b/testsuite/tests/dependent/should_fail/T14066.hs
@@ -1,7 +1,7 @@
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE PolyKinds #-}
-{-# LANGUAGE TypeInType #-}
-{-# LANGUAGE KindSignatures #-}
+
+
module T14066 where
diff --git a/testsuite/tests/dependent/should_fail/T14066c.hs b/testsuite/tests/dependent/should_fail/T14066c.hs
index b4597d2cec..4dd6f41973 100644
--- a/testsuite/tests/dependent/should_fail/T14066c.hs
+++ b/testsuite/tests/dependent/should_fail/T14066c.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeFamilies, TypeInType, UndecidableInstances #-}
+{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds, UndecidableInstances #-}
module T14066c where
diff --git a/testsuite/tests/dependent/should_fail/T14066d.hs b/testsuite/tests/dependent/should_fail/T14066d.hs
index ea47644688..dd5676826d 100644
--- a/testsuite/tests/dependent/should_fail/T14066d.hs
+++ b/testsuite/tests/dependent/should_fail/T14066d.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE RankNTypes, ScopedTypeVariables, TypeInType #-}
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, PolyKinds #-}
module T14066d where
diff --git a/testsuite/tests/dependent/should_fail/T14066e.hs b/testsuite/tests/dependent/should_fail/T14066e.hs
index 9b799e542c..9bce332527 100644
--- a/testsuite/tests/dependent/should_fail/T14066e.hs
+++ b/testsuite/tests/dependent/should_fail/T14066e.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE MonoLocalBinds, TypeInType, ScopedTypeVariables #-}
+{-# LANGUAGE MonoLocalBinds, PolyKinds, ScopedTypeVariables #-}
module T14066e where
diff --git a/testsuite/tests/dependent/should_fail/T14066f.hs b/testsuite/tests/dependent/should_fail/T14066f.hs
index ccb7ceac0e..b2035f2c3d 100644
--- a/testsuite/tests/dependent/should_fail/T14066f.hs
+++ b/testsuite/tests/dependent/should_fail/T14066f.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T14066f where
diff --git a/testsuite/tests/dependent/should_fail/T14066g.hs b/testsuite/tests/dependent/should_fail/T14066g.hs
index df0e03b173..b07a2c36a9 100644
--- a/testsuite/tests/dependent/should_fail/T14066g.hs
+++ b/testsuite/tests/dependent/should_fail/T14066g.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T14066g where
diff --git a/testsuite/tests/dependent/should_fail/T14066h.hs b/testsuite/tests/dependent/should_fail/T14066h.hs
index 7e7ecd31c9..a20ae30958 100644
--- a/testsuite/tests/dependent/should_fail/T14066h.hs
+++ b/testsuite/tests/dependent/should_fail/T14066h.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE ScopedTypeVariables, TypeInType, MonoLocalBinds #-}
+{-# LANGUAGE ScopedTypeVariables, PolyKinds, MonoLocalBinds #-}
module T14066h where
diff --git a/testsuite/tests/dependent/should_fail/T15245.hs b/testsuite/tests/dependent/should_fail/T15245.hs
new file mode 100644
index 0000000000..86d9c221e0
--- /dev/null
+++ b/testsuite/tests/dependent/should_fail/T15245.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds, TypeApplications #-}
+
+module T15245 where
+
+import Type.Reflection
+
+data family K
+data instance K = MkK
+
+main = print (typeRep @'MkK)
diff --git a/testsuite/tests/dependent/should_fail/T15245.stderr b/testsuite/tests/dependent/should_fail/T15245.stderr
new file mode 100644
index 0000000000..b41076636f
--- /dev/null
+++ b/testsuite/tests/dependent/should_fail/T15245.stderr
@@ -0,0 +1,7 @@
+
+T15245.hs:10:24: error:
+ • Data constructor ‘MkK’ cannot be used here
+ (it comes from a data family instance)
+ • In the type ‘ 'MkK’
+ In the first argument of ‘print’, namely ‘(typeRep @ 'MkK)’
+ In the expression: print (typeRep @ 'MkK)
diff --git a/testsuite/tests/dependent/should_fail/TypeSkolEscape.hs b/testsuite/tests/dependent/should_fail/TypeSkolEscape.hs
index 02b7737499..1f958de426 100644
--- a/testsuite/tests/dependent/should_fail/TypeSkolEscape.hs
+++ b/testsuite/tests/dependent/should_fail/TypeSkolEscape.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE RankNTypes, PolyKinds, TypeInType #-}
+{-# LANGUAGE RankNTypes, PolyKinds #-}
-- NB: -fprint-explicit-runtime-reps enabled in all.T
module TypeSkolEscape where
diff --git a/testsuite/tests/dependent/should_fail/all.T b/testsuite/tests/dependent/should_fail/all.T
index 7273445548..5ae037dc54 100644
--- a/testsuite/tests/dependent/should_fail/all.T
+++ b/testsuite/tests/dependent/should_fail/all.T
@@ -10,7 +10,6 @@ test('BadTelescope4', normal, compile_fail, [''])
test('RenamingStar', normal, compile_fail, [''])
test('T11407', normal, compile_fail, [''])
test('T11334b', normal, compile_fail, [''])
-test('KindLevelsB', normal, compile_fail, [''])
test('T11473', normal, compile_fail, [''])
test('T11471', normal, compile_fail, [''])
test('T12174', normal, compile_fail, [''])
@@ -28,3 +27,4 @@ test('T14066f', normal, compile_fail, [''])
test('T14066g', normal, compile_fail, [''])
test('T14066h', normal, compile_fail, [''])
test('InferDependency', normal, compile_fail, [''])
+test('T15245', normal, compile_fail, [''])
diff --git a/testsuite/tests/dependent/should_run/T11964a.hs b/testsuite/tests/dependent/should_run/T11964a.hs
index f0576542b6..2c6993fef0 100644
--- a/testsuite/tests/dependent/should_run/T11964a.hs
+++ b/testsuite/tests/dependent/should_run/T11964a.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T11964a where
import Data.Kind
type Star = Type
diff --git a/testsuite/tests/deriving/should_compile/T11416.hs b/testsuite/tests/deriving/should_compile/T11416.hs
index 4696306107..210d0423b7 100644
--- a/testsuite/tests/deriving/should_compile/T11416.hs
+++ b/testsuite/tests/deriving/should_compile/T11416.hs
@@ -1,6 +1,7 @@
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
module T11416 where
import Data.Kind
diff --git a/testsuite/tests/deriving/should_compile/T11732a.hs b/testsuite/tests/deriving/should_compile/T11732a.hs
index 54e1582642..e07fb6aafb 100644
--- a/testsuite/tests/deriving/should_compile/T11732a.hs
+++ b/testsuite/tests/deriving/should_compile/T11732a.hs
@@ -1,6 +1,6 @@
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T11732a where
import GHC.Generics
diff --git a/testsuite/tests/deriving/should_compile/T11732b.hs b/testsuite/tests/deriving/should_compile/T11732b.hs
index ba71ba5b30..8bd6388063 100644
--- a/testsuite/tests/deriving/should_compile/T11732b.hs
+++ b/testsuite/tests/deriving/should_compile/T11732b.hs
@@ -1,6 +1,6 @@
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T11732b where
data P1 (a :: k) = MkP1 deriving Functor
diff --git a/testsuite/tests/deriving/should_compile/T11732c.hs b/testsuite/tests/deriving/should_compile/T11732c.hs
index a3034ad867..55553045c0 100644
--- a/testsuite/tests/deriving/should_compile/T11732c.hs
+++ b/testsuite/tests/deriving/should_compile/T11732c.hs
@@ -1,7 +1,7 @@
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T11732c where
import Data.Kind
diff --git a/testsuite/tests/deriving/should_compile/T14331.hs b/testsuite/tests/deriving/should_compile/T14331.hs
index 4fe40fad27..d3b52da9a2 100644
--- a/testsuite/tests/deriving/should_compile/T14331.hs
+++ b/testsuite/tests/deriving/should_compile/T14331.hs
@@ -2,7 +2,7 @@
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module Bug where
class C p q
diff --git a/testsuite/tests/deriving/should_compile/T14579.hs b/testsuite/tests/deriving/should_compile/T14579.hs
index 19452446d6..518dffe214 100644
--- a/testsuite/tests/deriving/should_compile/T14579.hs
+++ b/testsuite/tests/deriving/should_compile/T14579.hs
@@ -1,5 +1,6 @@
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
module T14579 where
import Data.Kind
diff --git a/testsuite/tests/deriving/should_compile/T14932.hs b/testsuite/tests/deriving/should_compile/T14932.hs
index ece83cc497..bb82071bc2 100644
--- a/testsuite/tests/deriving/should_compile/T14932.hs
+++ b/testsuite/tests/deriving/should_compile/T14932.hs
@@ -5,7 +5,7 @@
{-# LANGUAGE TypeOperators #-}
module T14932 where
-import GHC.Exts
+import Data.Kind (Constraint, Type)
class Zero a where
zero :: a
@@ -16,7 +16,7 @@ type family All c xs :: Constraint where
All c '[] = ()
All c (x : xs) = (c x, All c xs)
-type family Code (a :: *) :: [[*]]
+type family Code (a :: Type) :: [[Type]]
type instance Code B1 = '[ '[ ] ]
data B1 = B1
diff --git a/testsuite/tests/deriving/should_fail/T12512.hs b/testsuite/tests/deriving/should_fail/T12512.hs
index 4d4e52c06c..804bfd31da 100644
--- a/testsuite/tests/deriving/should_fail/T12512.hs
+++ b/testsuite/tests/deriving/should_fail/T12512.hs
@@ -1,7 +1,7 @@
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE UnboxedSums #-}
{-# LANGUAGE UnboxedTuples #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T12512 where
import GHC.Exts
diff --git a/testsuite/tests/deriving/should_fail/T14728a.hs b/testsuite/tests/deriving/should_fail/T14728a.hs
index 28cf8e0ffc..5c1d1689dc 100644
--- a/testsuite/tests/deriving/should_fail/T14728a.hs
+++ b/testsuite/tests/deriving/should_fail/T14728a.hs
@@ -1,7 +1,7 @@
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T14728a where
import Data.Functor.Identity
diff --git a/testsuite/tests/deriving/should_fail/T14728b.hs b/testsuite/tests/deriving/should_fail/T14728b.hs
index 7fdfcb3b5e..653bcb9252 100644
--- a/testsuite/tests/deriving/should_fail/T14728b.hs
+++ b/testsuite/tests/deriving/should_fail/T14728b.hs
@@ -1,7 +1,7 @@
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T14728b where
import Data.Functor.Identity
diff --git a/testsuite/tests/deriving/should_fail/T15073.hs b/testsuite/tests/deriving/should_fail/T15073.hs
index ecceeed5e1..b1da4bb701 100644
--- a/testsuite/tests/deriving/should_fail/T15073.hs
+++ b/testsuite/tests/deriving/should_fail/T15073.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T15073 where
import T15073a
diff --git a/testsuite/tests/determinism/determ004/determ004.hs b/testsuite/tests/determinism/determ004/determ004.hs
index 756075031d..1361d76a0e 100644
--- a/testsuite/tests/determinism/determ004/determ004.hs
+++ b/testsuite/tests/determinism/determ004/determ004.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeOperators
+{-# LANGUAGE TypeOperators, StarIsType
, DataKinds
, PolyKinds
, TypeFamilies
diff --git a/testsuite/tests/determinism/determ014/A.hs b/testsuite/tests/determinism/determ014/A.hs
index fb7a538ebd..35ea20f225 100644
--- a/testsuite/tests/determinism/determ014/A.hs
+++ b/testsuite/tests/determinism/determ014/A.hs
@@ -11,6 +11,8 @@
module KeyValue where
+import Data.Kind
+
data AccValidation err a = AccFailure err | AccSuccess a
data KeyValueError = MissingValue
@@ -23,11 +25,11 @@ missing = rpure missingField
missingField :: forall x. (WithKeyValueError :. f) x
missingField = Compose $ AccFailure [MissingValue]
-data Rec :: (u -> *) -> [u] -> * where
+data Rec :: (u -> Type) -> [u] -> Type where
RNil :: Rec f '[]
(:&) :: !(f r) -> !(Rec f rs) -> Rec f (r ': rs)
-newtype Compose (f :: l -> *) (g :: k -> l) (x :: k)
+newtype Compose (f :: l -> Type) (g :: k -> l) (x :: k)
= Compose { getCompose :: f (g x) }
type (:.) f g = Compose f g
diff --git a/testsuite/tests/driver/T4437.hs b/testsuite/tests/driver/T4437.hs
index 24a46384e6..a75990e5ff 100644
--- a/testsuite/tests/driver/T4437.hs
+++ b/testsuite/tests/driver/T4437.hs
@@ -42,6 +42,7 @@ expectedGhcOnlyExtensions = ["RelaxedLayout",
"DerivingVia",
"EmptyDataDeriving",
"GeneralisedNewtypeDeriving",
+ "StarIsType", -- FIXME: add StarIsType to cabal
"QuantifiedConstraints"]
expectedCabalOnlyExtensions :: [String]
diff --git a/testsuite/tests/gadt/T7293.hs b/testsuite/tests/gadt/T7293.hs
index 26d9188f81..ed82f2a35b 100644
--- a/testsuite/tests/gadt/T7293.hs
+++ b/testsuite/tests/gadt/T7293.hs
@@ -3,9 +3,11 @@
module T7294 where
+import Data.Kind (Type)
+
data Nat = Zero | Succ Nat
-data Vec :: * -> Nat -> * where
+data Vec :: Type -> Nat -> Type where
Nil :: Vec a Zero
Cons :: a -> Vec a n -> Vec a (Succ n)
@@ -14,7 +16,7 @@ type instance m :< Zero = False
type instance Zero :< Succ n = True
type instance Succ n :< Succ m = n :< m
-data SNat :: Nat -> * where
+data SNat :: Nat -> Type where
SZero :: SNat Zero
SSucc :: forall (n :: Nat). SNat n -> SNat (Succ n)
diff --git a/testsuite/tests/gadt/T7293.stderr b/testsuite/tests/gadt/T7293.stderr
index 664f9a09df..87856d4009 100644
--- a/testsuite/tests/gadt/T7293.stderr
+++ b/testsuite/tests/gadt/T7293.stderr
@@ -1,9 +1,9 @@
-T7293.hs:24:1: error: [-Woverlapping-patterns (in -Wdefault), -Werror=overlapping-patterns]
+T7293.hs:26:1: error: [-Woverlapping-patterns (in -Wdefault), -Werror=overlapping-patterns]
Pattern match is redundant
In an equation for ‘nth’: nth Nil _ = ...
-T7293.hs:24:5: error: [-Winaccessible-code (in -Wdefault), -Werror=inaccessible-code]
+T7293.hs:26:5: error: [-Winaccessible-code (in -Wdefault), -Werror=inaccessible-code]
• Couldn't match type ‘'True’ with ‘'False’
Inaccessible code in
a pattern with constructor: Nil :: forall a. Vec a 'Zero,
diff --git a/testsuite/tests/gadt/T7294.hs b/testsuite/tests/gadt/T7294.hs
index 1c39a2a574..d7615955a7 100644
--- a/testsuite/tests/gadt/T7294.hs
+++ b/testsuite/tests/gadt/T7294.hs
@@ -4,9 +4,11 @@
module T7294 where
+import Data.Kind (Type)
+
data Nat = Zero | Succ Nat
-data Vec :: * -> Nat -> * where
+data Vec :: Type -> Nat -> Type where
Nil :: Vec a Zero
Cons :: a -> Vec a n -> Vec a (Succ n)
@@ -15,7 +17,7 @@ type instance m :< Zero = False
type instance Zero :< Succ n = True
type instance Succ n :< Succ m = n :< m
-data SNat :: Nat -> * where
+data SNat :: Nat -> Type where
SZero :: SNat Zero
SSucc :: forall (n :: Nat). SNat n -> SNat (Succ n)
diff --git a/testsuite/tests/gadt/T7294.stderr b/testsuite/tests/gadt/T7294.stderr
index 63b3e0e3ef..d7b53ee9e2 100644
--- a/testsuite/tests/gadt/T7294.stderr
+++ b/testsuite/tests/gadt/T7294.stderr
@@ -1,9 +1,9 @@
-T7294.hs:25:1: warning: [-Woverlapping-patterns (in -Wdefault)]
+T7294.hs:27:1: warning: [-Woverlapping-patterns (in -Wdefault)]
Pattern match is redundant
In an equation for ‘nth’: nth Nil _ = ...
-T7294.hs:25:5: warning: [-Winaccessible-code (in -Wdefault)]
+T7294.hs:27:5: warning: [-Winaccessible-code (in -Wdefault)]
• Couldn't match type ‘'True’ with ‘'False’
Inaccessible code in
a pattern with constructor: Nil :: forall a. Vec a 'Zero,
diff --git a/testsuite/tests/generics/GEq/GEq1.hs b/testsuite/tests/generics/GEq/GEq1.hs
index 54867db8ed..1c7e2ca8c3 100644
--- a/testsuite/tests/generics/GEq/GEq1.hs
+++ b/testsuite/tests/generics/GEq/GEq1.hs
@@ -3,6 +3,7 @@
module Main where
+import Data.Kind
import GHC.Exts
import GHC.Generics hiding (C, D)
import GEq1A
@@ -18,14 +19,14 @@ data D a = D0 | D1 { d11 :: a, d12 :: (D a) }
data (:**:) a b = a :**: b
deriving Generic
-data family F a b :: * -> *
+data family F a b :: Type -> Type
data instance F Int b c = F b Int c
deriving Generic
data U a = U a Addr# Char# Double# Float# Int# Word#
deriving Generic
-data family UF a b :: * -> *
+data family UF a b :: Type -> Type
data instance UF Int b c = UF b c Addr# Char# Double# Float# Int# Word#
deriving Generic
diff --git a/testsuite/tests/ghci/scripts/T10321.hs b/testsuite/tests/ghci/scripts/T10321.hs
index 44d264a801..443ebe41a4 100644
--- a/testsuite/tests/ghci/scripts/T10321.hs
+++ b/testsuite/tests/ghci/scripts/T10321.hs
@@ -5,9 +5,10 @@
module T10321 where
+import Data.Kind (Type)
import GHC.TypeLits
-data Vec :: Nat -> * -> * where
+data Vec :: Nat -> Type -> Type where
Nil :: Vec 0 a
(:>) :: a -> Vec n a -> Vec (n + 1) a
diff --git a/testsuite/tests/ghci/scripts/T11252.script b/testsuite/tests/ghci/scripts/T11252.script
index 485cd8fa0d..3cec1d348d 100644
--- a/testsuite/tests/ghci/scripts/T11252.script
+++ b/testsuite/tests/ghci/scripts/T11252.script
@@ -1,3 +1,3 @@
-:set -XTypeInType
+:set -XPolyKinds
data Proxy1 k (a :: k) = Proxy1
:kind Proxy1
diff --git a/testsuite/tests/ghci/scripts/T11376.script b/testsuite/tests/ghci/scripts/T11376.script
index d359b66542..0cda4f02ba 100644
--- a/testsuite/tests/ghci/scripts/T11376.script
+++ b/testsuite/tests/ghci/scripts/T11376.script
@@ -3,7 +3,7 @@ let { bar :: Show a => a -> b -> a; bar = error "urk" }
:type bar @Int
:set -fprint-explicit-foralls
:type bar @Int
-:set -fprint-explicit-kinds -XTypeApplications -XTypeInType
+:set -fprint-explicit-kinds -XTypeApplications -XPolyKinds
data Prox a = Prox
let { prox :: Prox a; prox = Prox }
:t prox
diff --git a/testsuite/tests/ghci/scripts/T12550.script b/testsuite/tests/ghci/scripts/T12550.script
index dad2a47e65..7c07e8f1dd 100644
--- a/testsuite/tests/ghci/scripts/T12550.script
+++ b/testsuite/tests/ghci/scripts/T12550.script
@@ -1,4 +1,4 @@
-:set -fprint-explicit-foralls -XKindSignatures -XExplicitNamespaces
+:set -fprint-explicit-foralls -XKindSignatures -XExplicitNamespaces -XUnicodeSyntax
import Data.Kind (type Type)
diff --git a/testsuite/tests/ghci/scripts/T13407.script b/testsuite/tests/ghci/scripts/T13407.script
index f77fd42afe..3956a3a210 100644
--- a/testsuite/tests/ghci/scripts/T13407.script
+++ b/testsuite/tests/ghci/scripts/T13407.script
@@ -1,4 +1,4 @@
-:set -XTypeInType -XRankNTypes
+:set -XPolyKinds -XRankNTypes
import Data.Kind
-data Foo :: (* -> *) -> (forall k. k -> *)
+data Foo :: (Type -> Type) -> (forall k. k -> Type)
:info Foo
diff --git a/testsuite/tests/ghci/scripts/T13963.script b/testsuite/tests/ghci/scripts/T13963.script
index fdd4d78338..c5e830aad1 100644
--- a/testsuite/tests/ghci/scripts/T13963.script
+++ b/testsuite/tests/ghci/scripts/T13963.script
@@ -1,4 +1,4 @@
-:set -XTypeInType -XRankNTypes
+:set -XPolyKinds -XDataKinds -XRankNTypes
import GHC.Exts (TYPE, RuntimeRep(LiftedRep))
type Pair (a :: TYPE rep) (b :: TYPE rep') rep'' = forall (r :: TYPE rep''). (a -> b -> r)
:kind Pair
diff --git a/testsuite/tests/ghci/scripts/T13988.hs b/testsuite/tests/ghci/scripts/T13988.hs
index 54969cad4d..d26135e26d 100644
--- a/testsuite/tests/ghci/scripts/T13988.hs
+++ b/testsuite/tests/ghci/scripts/T13988.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, GADTs #-}
+{-# LANGUAGE PolyKinds, GADTs #-}
module T13988 where
diff --git a/testsuite/tests/ghci/scripts/T7873.script b/testsuite/tests/ghci/scripts/T7873.script
index 404c1f5bda..1a358a478e 100644
--- a/testsuite/tests/ghci/scripts/T7873.script
+++ b/testsuite/tests/ghci/scripts/T7873.script
@@ -1,4 +1,4 @@
-:set -XPolyKinds -XRankNTypes -XGADTs -XTypeInType
+:set -XPolyKinds -XRankNTypes -XGADTs
data D1 = MkD1 (forall p (a :: k). p a -> Int)
data D2 = MkD2 (forall p a. p a -> Int)
data D3 = MkD3 (forall k p (a :: k). p a -> Int)
diff --git a/testsuite/tests/ghci/scripts/T7939.hs b/testsuite/tests/ghci/scripts/T7939.hs
index fbdf883b51..04a1f1a623 100644
--- a/testsuite/tests/ghci/scripts/T7939.hs
+++ b/testsuite/tests/ghci/scripts/T7939.hs
@@ -1,6 +1,6 @@
{-# LANGUAGE TypeFamilies, PolyKinds, DataKinds, TypeOperators #-}
-
module T7939 where
+import Data.Kind (Type)
class Foo a where
type Bar a b
@@ -22,6 +22,6 @@ type family K a where
K '[] = Nothing
K (h ': t) = Just h
-type family L (a :: k) (b :: *) :: k where
+type family L (a :: k) (b :: Type) :: k where
L Int Int = Bool
L Maybe Bool = IO
diff --git a/testsuite/tests/ghci/scripts/T8357.hs b/testsuite/tests/ghci/scripts/T8357.hs
index 82a34afdc6..322ec11e19 100644
--- a/testsuite/tests/ghci/scripts/T8357.hs
+++ b/testsuite/tests/ghci/scripts/T8357.hs
@@ -5,11 +5,12 @@
{-# LANGUAGE TypeOperators #-}
module T8357 where
+import Data.Kind (Type)
import GHC.TypeLits
data (:::) (sy :: Symbol) ty
data Key (sy :: Symbol)
-data Rec (rs :: [*])
+data Rec (rs :: [Type])
(*=) :: Key sy -> ty -> Rec '[sy ::: ty]
(*=) = undefined
@@ -17,7 +18,7 @@ data Rec (rs :: [*])
(.*.) :: (Union xs ys ~ rs) => Rec xs -> Rec ys -> Rec rs
(.*.) = undefined
-type family Union (xs :: [*]) (ys :: [*]) :: [*] where
+type family Union (xs :: [Type]) (ys :: [Type]) :: [Type] where
Union ((sy ::: t) ': xs) ys = (sy ::: t) ': Union xs ys
Union '[] ys = ys
@@ -30,4 +31,4 @@ fBar = undefined
foo = fFoo *= "foo"
bar = fBar *= "bar"
-both = foo .*. bar \ No newline at end of file
+both = foo .*. bar
diff --git a/testsuite/tests/indexed-types/should_compile/HO.hs b/testsuite/tests/indexed-types/should_compile/HO.hs
index a674469518..dceb4ebef5 100644
--- a/testsuite/tests/indexed-types/should_compile/HO.hs
+++ b/testsuite/tests/indexed-types/should_compile/HO.hs
@@ -3,9 +3,10 @@
module HO where
import Data.IORef
+import Data.Kind
-type family SMRef (m::(* -> *)) :: * -> *
-type family SMMonad (r::(* -> *)) :: * -> *
+type family SMRef (m::(Type -> Type)) :: Type -> Type
+type family SMMonad (r::(Type -> Type)) :: Type -> Type
type instance SMRef IO = IORef
type instance SMMonad IORef = IO
diff --git a/testsuite/tests/indexed-types/should_compile/Numerals.hs b/testsuite/tests/indexed-types/should_compile/Numerals.hs
index 17fb30c3ca..cb3c8e8e56 100644
--- a/testsuite/tests/indexed-types/should_compile/Numerals.hs
+++ b/testsuite/tests/indexed-types/should_compile/Numerals.hs
@@ -3,8 +3,9 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE TypeOperators #-}
-module Numerals
-where
+module Numerals where
+
+import Data.Kind
data Z -- empty data type
data S a -- empty data type
@@ -19,7 +20,7 @@ two = Succ one
three = Succ two
-- etc...we really would like some nicer syntax here
-type family (:+:) n m :: *
+type family (:+:) n m :: Type
type instance Z :+: m = m
type instance (S n) :+: m = S (n :+: m)
diff --git a/testsuite/tests/indexed-types/should_compile/T12369.hs b/testsuite/tests/indexed-types/should_compile/T12369.hs
index 51cee7df03..7f4e097ca0 100644
--- a/testsuite/tests/indexed-types/should_compile/T12369.hs
+++ b/testsuite/tests/indexed-types/should_compile/T12369.hs
@@ -1,11 +1,11 @@
-{-# language PolyKinds, KindSignatures, GADTs, TypeFamilies, RankNTypes, TypeInType,
+{-# language DataKinds, PolyKinds, GADTs, TypeFamilies, RankNTypes,
TypeOperators, ConstraintKinds #-}
module T12369 where
import Data.Kind
-data family Fix :: (k -> *) -> k
+data family Fix :: (k -> Type) -> k
newtype instance Fix f = In { out :: f (Fix f) }
type FREE k = (k -> Constraint) -> (k -> k)
diff --git a/testsuite/tests/indexed-types/should_compile/T12522b.hs b/testsuite/tests/indexed-types/should_compile/T12522b.hs
index 75013823c9..7ed8ae19ff 100644
--- a/testsuite/tests/indexed-types/should_compile/T12522b.hs
+++ b/testsuite/tests/indexed-types/should_compile/T12522b.hs
@@ -3,15 +3,17 @@
{-# LANGUAGE TypeFamilyDependencies #-}
{-# LANGUAGE TypeOperators #-}
-module T12522a where
+module T12522b where
+
+import Data.Kind (Type)
newtype I a = I a
-type family Curry (as :: [*]) b = f | f -> as b where
+type family Curry (as :: [Type]) b = f | f -> as b where
Curry '[] b = I b
Curry (a:as) b = a -> Curry as b
-data Uncurried (as :: [*]) b
+data Uncurried (as :: [Type]) b
def :: Curry as b -> Uncurried as b
def = undefined
diff --git a/testsuite/tests/indexed-types/should_compile/T12938.hs b/testsuite/tests/indexed-types/should_compile/T12938.hs
index 1c8f47e8cb..262a66b406 100644
--- a/testsuite/tests/indexed-types/should_compile/T12938.hs
+++ b/testsuite/tests/indexed-types/should_compile/T12938.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, TypeFamilies #-}
+{-# LANGUAGE PolyKinds, TypeFamilies #-}
module Bug where
diff --git a/testsuite/tests/indexed-types/should_compile/T13244.hs b/testsuite/tests/indexed-types/should_compile/T13244.hs
index e1a65b99ef..6cfea014a4 100644
--- a/testsuite/tests/indexed-types/should_compile/T13244.hs
+++ b/testsuite/tests/indexed-types/should_compile/T13244.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE MagicHash, DataKinds, PolyKinds, TypeInType, TypeFamilies #-}
+{-# LANGUAGE MagicHash, DataKinds, PolyKinds, TypeFamilies #-}
module T13244 where
diff --git a/testsuite/tests/indexed-types/should_compile/T13398b.hs b/testsuite/tests/indexed-types/should_compile/T13398b.hs
index 0689ef39d6..703a81763a 100644
--- a/testsuite/tests/indexed-types/should_compile/T13398b.hs
+++ b/testsuite/tests/indexed-types/should_compile/T13398b.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T13398b where
import GHC.TypeLits
diff --git a/testsuite/tests/indexed-types/should_compile/T14162.hs b/testsuite/tests/indexed-types/should_compile/T14162.hs
index 136c161cbf..1eccbffc86 100644
--- a/testsuite/tests/indexed-types/should_compile/T14162.hs
+++ b/testsuite/tests/indexed-types/should_compile/T14162.hs
@@ -1,4 +1,5 @@
-{-# Language TypeOperators, KindSignatures, DataKinds, PolyKinds, TypeFamilies, GADTs, TypeInType #-}
+{-# Language TypeOperators, KindSignatures, DataKinds, PolyKinds,
+ TypeFamilies, GADTs #-}
module T14162 where
diff --git a/testsuite/tests/indexed-types/should_compile/T14554.hs b/testsuite/tests/indexed-types/should_compile/T14554.hs
index f6b382252a..6049b1934e 100644
--- a/testsuite/tests/indexed-types/should_compile/T14554.hs
+++ b/testsuite/tests/indexed-types/should_compile/T14554.hs
@@ -1,6 +1,5 @@
-{-# Language UndecidableInstances, DataKinds, TypeOperators,
- KindSignatures, PolyKinds, TypeInType, TypeFamilies,
- GADTs, LambdaCase, ScopedTypeVariables #-}
+{-# Language UndecidableInstances, DataKinds, TypeOperators, TypeFamilies,
+ PolyKinds, GADTs, LambdaCase, ScopedTypeVariables #-}
module T14554 where
diff --git a/testsuite/tests/indexed-types/should_compile/T15122.hs b/testsuite/tests/indexed-types/should_compile/T15122.hs
index 44a3c0523f..c05bd3a8a0 100644
--- a/testsuite/tests/indexed-types/should_compile/T15122.hs
+++ b/testsuite/tests/indexed-types/should_compile/T15122.hs
@@ -7,7 +7,7 @@ import Data.Kind
import Data.Proxy
data IsStar (a :: k) where
- IsStar :: IsStar (a :: *)
+ IsStar :: IsStar (a :: Type)
type family F (a :: k) :: k
diff --git a/testsuite/tests/indexed-types/should_compile/T2219.hs b/testsuite/tests/indexed-types/should_compile/T2219.hs
index ea7d442f74..9778524a7a 100644
--- a/testsuite/tests/indexed-types/should_compile/T2219.hs
+++ b/testsuite/tests/indexed-types/should_compile/T2219.hs
@@ -2,6 +2,8 @@
module Test where
+import Data.Kind (Type)
+
data Zero
data Succ a
@@ -15,7 +17,7 @@ data Fin n fn where
data Nil
data a ::: b
-type family Lookup ts fn :: *
+type family Lookup ts fn :: Type
type instance Lookup (t ::: ts) FZ = t
type instance Lookup (t ::: ts) (FS fn) = Lookup ts fn
diff --git a/testsuite/tests/indexed-types/should_compile/T7585.hs b/testsuite/tests/indexed-types/should_compile/T7585.hs
index a21c04dbf7..2cf23d267e 100644
--- a/testsuite/tests/indexed-types/should_compile/T7585.hs
+++ b/testsuite/tests/indexed-types/should_compile/T7585.hs
@@ -3,11 +3,13 @@
module Bug where
-data SBool :: Bool -> * where
+import Data.Kind
+
+data SBool :: Bool -> Type where
SFalse :: SBool False
STrue :: SBool True
-data SList :: [Bool] -> * where
+data SList :: [Bool] -> Type where
SNil :: SList '[]
SCons :: SBool h -> SList t -> SList (h ': t)
@@ -17,4 +19,4 @@ type family (a :: [k]) :==: (b :: [k]) :: Bool where
a :==: b = False
(%==%) :: SList ls1 -> SList ls2 -> SBool (ls1 :==: ls2)
-SNil %==% (SCons _ _) = SFalse \ No newline at end of file
+SNil %==% (SCons _ _) = SFalse
diff --git a/testsuite/tests/indexed-types/should_compile/T9747.hs b/testsuite/tests/indexed-types/should_compile/T9747.hs
index 3b1c47703e..aefffd55f6 100644
--- a/testsuite/tests/indexed-types/should_compile/T9747.hs
+++ b/testsuite/tests/indexed-types/should_compile/T9747.hs
@@ -4,13 +4,14 @@
module T9747 where
import Data.List (intercalate)
import Data.Proxy
-import GHC.Exts (Constraint)
+import Data.Kind (Type, Constraint)
-data HList :: [*] -> * where
+data HList :: [Type] -> Type where
Nil :: HList '[]
Cons :: a -> HList as -> HList (a ': as)
-type family HListAll (c :: * -> Constraint) (ts :: [*]) :: Constraint where
+type family HListAll (c :: Type -> Constraint)
+ (ts :: [Type]) :: Constraint where
HListAll c '[] = ()
HListAll c (t ': ts) = (c t, HListAll c ts)
@@ -27,7 +28,7 @@ test = showHList (Cons (2::Int)
(Cons (3.1 :: Float)
(Cons 'c' Nil)))
-type family ConFun (t :: *) :: * -> Constraint
+type family ConFun (t :: Type) :: Type -> Constraint
data Tag
type instance ConFun Tag = Group
diff --git a/testsuite/tests/indexed-types/should_fail/T12522a.hs b/testsuite/tests/indexed-types/should_fail/T12522a.hs
index eb855f4171..e8b12c4d1e 100644
--- a/testsuite/tests/indexed-types/should_fail/T12522a.hs
+++ b/testsuite/tests/indexed-types/should_fail/T12522a.hs
@@ -5,13 +5,15 @@
module T12522a where
+import Data.Kind (Type)
+
newtype I a = I a
-type family Curry (as :: [*]) b = f | f -> as b where
+type family Curry (as :: [Type]) b = f | f -> as b where
Curry '[] b = I b
Curry (a:as) b = a -> Curry as b
-data Uncurried (as :: [*]) b
+data Uncurried (as :: [Type]) b
def :: Curry as b -> Uncurried as b
def = undefined
diff --git a/testsuite/tests/indexed-types/should_fail/T12522a.stderr b/testsuite/tests/indexed-types/should_fail/T12522a.stderr
index d7a4f06b8c..44e60d2194 100644
--- a/testsuite/tests/indexed-types/should_fail/T12522a.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T12522a.stderr
@@ -1,10 +1,10 @@
-T12522a.hs:20:26: error:
+T12522a.hs:22:26: error:
• Ambiguous type variable ‘a0’ arising from a use of ‘show’
prevents the constraint ‘(Show a0)’ from being solved.
Relevant bindings include
- n :: a0 (bound at T12522a.hs:20:15)
- test :: Uncurried '[a0, [Char]] [Char] (bound at T12522a.hs:20:1)
+ n :: a0 (bound at T12522a.hs:22:15)
+ test :: Uncurried '[a0, [Char]] [Char] (bound at T12522a.hs:22:1)
Probable fix: use a type annotation to specify what ‘a0’ should be.
These potential instances exist:
instance Show Ordering -- Defined in ‘GHC.Show’
diff --git a/testsuite/tests/indexed-types/should_fail/T13674.hs b/testsuite/tests/indexed-types/should_fail/T13674.hs
index 4d9a81d8a5..2951406241 100644
--- a/testsuite/tests/indexed-types/should_fail/T13674.hs
+++ b/testsuite/tests/indexed-types/should_fail/T13674.hs
@@ -11,11 +11,11 @@
module T13674 where
import Data.Proxy
-import GHC.Exts (Constraint)
+import Data.Kind (Constraint, Type)
import GHC.TypeLits
import Unsafe.Coerce (unsafeCoerce)
-data Dict :: Constraint -> * where
+data Dict :: Constraint -> Type where
Dict :: a => Dict a
infixr 9 :-
diff --git a/testsuite/tests/indexed-types/should_fail/T13784.hs b/testsuite/tests/indexed-types/should_fail/T13784.hs
index 36c72b98af..48982769a2 100644
--- a/testsuite/tests/indexed-types/should_fail/T13784.hs
+++ b/testsuite/tests/indexed-types/should_fail/T13784.hs
@@ -4,9 +4,10 @@
module T13784 where
+import Data.Kind (Type)
import Data.Monoid ((<>))
-data Product :: [*] -> * where
+data Product :: [Type] -> Type where
(:*) :: a -> Product as -> Product (a : as)
Unit :: Product '[]
infixr 5 :*
@@ -18,7 +19,7 @@ instance (Show a, Show (Product as)) => Show (Product (a : as)) where
show (a :* as) = show a <> " :* " <> show as
class Divideable a as where
- type Divide a as :: [*]
+ type Divide a as :: [Type]
divide :: Product as -> (a, Product (Divide a as))
instance Divideable a (a : as) where
diff --git a/testsuite/tests/indexed-types/should_fail/T13784.stderr b/testsuite/tests/indexed-types/should_fail/T13784.stderr
index ee4ec20b63..63edf0482f 100644
--- a/testsuite/tests/indexed-types/should_fail/T13784.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T13784.stderr
@@ -1,9 +1,9 @@
-T13784.hs:28:28: error:
+T13784.hs:29:28: error:
• Couldn't match type ‘as’ with ‘a : Divide a as’
‘as’ is a rigid type variable bound by
the instance declaration
- at T13784.hs:24:10-30
+ at T13784.hs:25:10-30
Expected type: Product (Divide a (a : as))
Actual type: Product as1
• In the expression: as
@@ -11,9 +11,9 @@ T13784.hs:28:28: error:
In an equation for ‘divide’: divide (a :* as) = (a, as)
• Relevant bindings include
divide :: Product (a : as) -> (a, Product (Divide a (a : as)))
- (bound at T13784.hs:28:5)
+ (bound at T13784.hs:29:5)
-T13784.hs:32:24: error:
+T13784.hs:33:24: error:
• Couldn't match type ‘Product (a : as0)’
with ‘(b, Product (Divide b (a : as)))’
Expected type: (b, Product (Divide b (a : as)))
@@ -23,9 +23,9 @@ T13784.hs:32:24: error:
In the instance declaration for ‘Divideable b (a : as)’
• Relevant bindings include
divide :: Product (a : as) -> (b, Product (Divide b (a : as)))
- (bound at T13784.hs:32:5)
+ (bound at T13784.hs:33:5)
-T13784.hs:32:29: error:
+T13784.hs:33:29: error:
• Couldn't match type ‘(a0, Product (Divide a0 as))’
with ‘Product as0’
Expected type: Product as0
@@ -35,4 +35,4 @@ T13784.hs:32:29: error:
In an equation for ‘divide’: divide (a :* as) = a :* divide as
• Relevant bindings include
divide :: Product (a : as) -> (b, Product (Divide b (a : as)))
- (bound at T13784.hs:32:5)
+ (bound at T13784.hs:33:5)
diff --git a/testsuite/tests/indexed-types/should_fail/T13877.hs b/testsuite/tests/indexed-types/should_fail/T13877.hs
index ee5f16b1f3..89c79a60e3 100644
--- a/testsuite/tests/indexed-types/should_fail/T13877.hs
+++ b/testsuite/tests/indexed-types/should_fail/T13877.hs
@@ -6,7 +6,7 @@
{-# LANGUAGE Trustworthy #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module T13877 where
@@ -17,8 +17,8 @@ data instance Sing (z :: [a]) where
SNil :: Sing '[]
SCons :: Sing x -> Sing xs -> Sing (x:xs)
-data TyFun :: * -> * -> *
-type a ~> b = TyFun a b -> *
+data TyFun :: Type -> Type -> Type
+type a ~> b = TyFun a b -> Type
infixr 0 ~>
type family Apply (f :: k1 ~> k2) (x :: k1) :: k2
diff --git a/testsuite/tests/indexed-types/should_fail/T13972.hs b/testsuite/tests/indexed-types/should_fail/T13972.hs
index 8a43e2016f..a0a203d30a 100644
--- a/testsuite/tests/indexed-types/should_fail/T13972.hs
+++ b/testsuite/tests/indexed-types/should_fail/T13972.hs
@@ -1,6 +1,6 @@
+{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
module Bug where
import Data.Kind
diff --git a/testsuite/tests/indexed-types/should_fail/T14175.hs b/testsuite/tests/indexed-types/should_fail/T14175.hs
index 9d259fe704..2e84b730e1 100644
--- a/testsuite/tests/indexed-types/should_fail/T14175.hs
+++ b/testsuite/tests/indexed-types/should_fail/T14175.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeFamilies, PolyKinds, TypeInType #-}
+{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds #-}
module T14175 where
diff --git a/testsuite/tests/indexed-types/should_fail/T14246.hs b/testsuite/tests/indexed-types/should_fail/T14246.hs
index cf947e816e..6ae8760c84 100644
--- a/testsuite/tests/indexed-types/should_fail/T14246.hs
+++ b/testsuite/tests/indexed-types/should_fail/T14246.hs
@@ -2,7 +2,7 @@
module T14246 where
-import Data.Kind -- necessary for *
+import Data.Kind
data Nat = Z | S Nat
@@ -16,8 +16,8 @@ data L
type family KLN (n :: k) :: Nat where
KLN (f :: v -> k) = S (KLN (forall t. f t))
- KLN (f :: *) = Z
+ KLN (f :: Type) = Z
-type family Reveal (n :: k) (l :: Vect (KLN n) L) :: * where
+type family Reveal (n :: k) (l :: Vect (KLN n) L) :: Type where
Reveal (f :: v -> k) (Cons (Label (t :: v)) l) = Reveal (f t) l
- Reveal (a :: *) Nil = a
+ Reveal (a :: Type) Nil = a
diff --git a/testsuite/tests/indexed-types/should_fail/T14246.stderr b/testsuite/tests/indexed-types/should_fail/T14246.stderr
index 0f0a3e579d..4bb45d6399 100644
--- a/testsuite/tests/indexed-types/should_fail/T14246.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T14246.stderr
@@ -18,7 +18,7 @@ T14246.hs:22:67: error:
In the type ‘Reveal (f t) l’
In the type family declaration for ‘Reveal’
-T14246.hs:23:21: error:
+T14246.hs:23:24: error:
• Expected kind ‘Vect (KLN a) L’, but ‘Nil’ has kind ‘Vect 'Z L’
• In the second argument of ‘Reveal’, namely ‘Nil’
In the type family declaration for ‘Reveal’
diff --git a/testsuite/tests/indexed-types/should_fail/T14369.hs b/testsuite/tests/indexed-types/should_fail/T14369.hs
index 98afa3ecd6..ef5166c318 100644
--- a/testsuite/tests/indexed-types/should_fail/T14369.hs
+++ b/testsuite/tests/indexed-types/should_fail/T14369.hs
@@ -4,7 +4,7 @@
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilyDependencies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module T14369 where
diff --git a/testsuite/tests/indexed-types/should_fail/T2544.hs b/testsuite/tests/indexed-types/should_fail/T2544.hs
index 2150cd5775..34a79f4db8 100644
--- a/testsuite/tests/indexed-types/should_fail/T2544.hs
+++ b/testsuite/tests/indexed-types/should_fail/T2544.hs
@@ -4,10 +4,12 @@
module T2544 where
+import Data.Kind
+
data (:|:) a b = Inl a | Inr b
class Ix i where
- type IxMap i :: * -> *
+ type IxMap i :: Type -> Type
empty :: IxMap i [Int]
data BiApp a b c = BiApp (a c) (b c)
diff --git a/testsuite/tests/indexed-types/should_fail/T2544.stderr b/testsuite/tests/indexed-types/should_fail/T2544.stderr
index d5a9c56516..93d7746066 100644
--- a/testsuite/tests/indexed-types/should_fail/T2544.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T2544.stderr
@@ -1,5 +1,5 @@
-T2544.hs:17:12: error:
+T2544.hs:19:12: error:
• Couldn't match type ‘IxMap r’ with ‘IxMap i1’
Expected type: IxMap (l :|: r) [Int]
Actual type: BiApp (IxMap l) (IxMap i1) [Int]
@@ -9,9 +9,9 @@ T2544.hs:17:12: error:
In an equation for ‘empty’: empty = BiApp empty empty
In the instance declaration for ‘Ix (l :|: r)’
• Relevant bindings include
- empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:17:4)
+ empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:19:4)
-T2544.hs:17:18: error:
+T2544.hs:19:18: error:
• Couldn't match type ‘IxMap i0’ with ‘IxMap l’
Expected type: IxMap l [Int]
Actual type: IxMap i0 [Int]
@@ -21,4 +21,4 @@ T2544.hs:17:18: error:
In the expression: BiApp empty empty
In an equation for ‘empty’: empty = BiApp empty empty
• Relevant bindings include
- empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:17:4)
+ empty :: IxMap (l :|: r) [Int] (bound at T2544.hs:19:4)
diff --git a/testsuite/tests/indexed-types/should_fail/T3330c.hs b/testsuite/tests/indexed-types/should_fail/T3330c.hs
index e6c4dfbb30..d84c51d5d5 100644
--- a/testsuite/tests/indexed-types/should_fail/T3330c.hs
+++ b/testsuite/tests/indexed-types/should_fail/T3330c.hs
@@ -2,9 +2,11 @@
module T3330c where
+import Data.Kind
+
data (f :+: g) x = Inl (f x) | Inr (g x)
-data R :: (* -> *) -> * where
+data R :: (Type -> Type) -> Type where
RSum :: R f -> R g -> R (f :+: g)
class Rep f where
@@ -13,7 +15,7 @@ class Rep f where
instance (Rep f, Rep g) => Rep (f :+: g) where
rep = RSum rep rep
-type family Der (f :: * -> *) :: * -> *
+type family Der (f :: Type -> Type) :: Type -> Type
type instance Der (f :+: g) = Der f :+: Der g
plug :: Rep f => Der f x -> x -> f x
@@ -55,4 +57,4 @@ Hence
f1 ~ f1 x
--} \ No newline at end of file
+-}
diff --git a/testsuite/tests/indexed-types/should_fail/T3330c.stderr b/testsuite/tests/indexed-types/should_fail/T3330c.stderr
index 829bca1400..4ef5ae66a8 100644
--- a/testsuite/tests/indexed-types/should_fail/T3330c.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T3330c.stderr
@@ -1,5 +1,5 @@
-T3330c.hs:23:43: error:
+T3330c.hs:25:43: error:
• Couldn't match kind ‘* -> *’ with ‘*’
When matching types
f1 :: * -> *
@@ -10,7 +10,7 @@ T3330c.hs:23:43: error:
In the first argument of ‘Inl’, namely ‘(plug rf df x)’
In the expression: Inl (plug rf df x)
• Relevant bindings include
- x :: x (bound at T3330c.hs:23:29)
- df :: f1 x (bound at T3330c.hs:23:25)
- rf :: R f1 (bound at T3330c.hs:23:13)
- plug' :: R f -> Der f x -> x -> f x (bound at T3330c.hs:23:1)
+ x :: x (bound at T3330c.hs:25:29)
+ df :: f1 x (bound at T3330c.hs:25:25)
+ rf :: R f1 (bound at T3330c.hs:25:13)
+ plug' :: R f -> Der f x -> x -> f x (bound at T3330c.hs:25:1)
diff --git a/testsuite/tests/indexed-types/should_fail/T4174.hs b/testsuite/tests/indexed-types/should_fail/T4174.hs
index 784c0baa08..a4f105ff86 100644
--- a/testsuite/tests/indexed-types/should_fail/T4174.hs
+++ b/testsuite/tests/indexed-types/should_fail/T4174.hs
@@ -2,6 +2,8 @@
module T4174 where
+import Data.Kind (Type)
+
data True
data False
@@ -10,17 +12,17 @@ data Minor1
data GHC6'8 m
data GHC6'10 m
-type family a :<=: b :: {-Bool-}*
+type family a :<=: b :: {-Bool-} Type
type instance GHC6'10 m1 :<=: GHC6'8 m2 = False
type a :>=: b = b :<=: a
data Way ghcVersion tablesNextToCode profiling threaded
-type family GHCVersion way :: {-GHCVersion-} *
+type family GHCVersion way :: {-GHCVersion-} Type
type instance GHCVersion (Way v n p t) = v
-type family Threaded way :: {-Bool-} *
+type family Threaded way :: {-Bool-} Type
type instance Threaded (Way v n p t) = t
data Field w s t
@@ -30,7 +32,7 @@ data RtsSpinLock
field :: String -> m (Field w a b)
field = undefined
-type family WayOf (m :: * -> *) :: *
+type family WayOf (m :: Type -> Type) :: Type
sync_large_objects :: (Monad m,
(GHCVersion (WayOf m) :>=: GHC6'10 Minor1) ~ True,
@@ -57,4 +59,4 @@ testcase = sync_large_objects
== (GHC6'10 Minor1 :<=: GHC6'8 minor) ~ True
== False ~ True
--} \ No newline at end of file
+-}
diff --git a/testsuite/tests/indexed-types/should_fail/T4174.stderr b/testsuite/tests/indexed-types/should_fail/T4174.stderr
index db5008dd1e..ccc88ced1e 100644
--- a/testsuite/tests/indexed-types/should_fail/T4174.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T4174.stderr
@@ -1,16 +1,16 @@
-T4174.hs:42:12: error:
+T4174.hs:44:12: error:
• Couldn't match type ‘b’ with ‘RtsSpinLock’
‘b’ is a rigid type variable bound by
the type signature for:
testcase :: forall (m :: * -> *) minor n t p a b.
Monad m =>
m (Field (Way (GHC6'8 minor) n t p) a b)
- at T4174.hs:41:1-63
+ at T4174.hs:43:1-63
Expected type: m (Field (Way (GHC6'8 minor) n t p) a b)
Actual type: m (Field (WayOf m) SmStep RtsSpinLock)
• In the expression: sync_large_objects
In an equation for ‘testcase’: testcase = sync_large_objects
• Relevant bindings include
testcase :: m (Field (Way (GHC6'8 minor) n t p) a b)
- (bound at T4174.hs:42:1)
+ (bound at T4174.hs:44:1)
diff --git a/testsuite/tests/indexed-types/should_fail/T7786.hs b/testsuite/tests/indexed-types/should_fail/T7786.hs
index 2a5c7f5983..33a74f233f 100644
--- a/testsuite/tests/indexed-types/should_fail/T7786.hs
+++ b/testsuite/tests/indexed-types/should_fail/T7786.hs
@@ -4,7 +4,9 @@
FlexibleContexts, ScopedTypeVariables #-}
module T7786 where
+import Data.Kind (Type)
import GHC.TypeLits(Symbol,Nat)
+
data family Sing (a :: k)
data Inventory a = Empty | More (Inventory a) a
@@ -33,7 +35,7 @@ under Root' post = post
under (Symic'' ks k) post = under ks post `Symic''` k
under (Numic'' ks k) post = under ks post `Numic''` k
-data Database :: Inventory [KeySegment] -> * where
+data Database :: Inventory [KeySegment] -> Type where
Clean :: Database Empty
Record :: (k `KeyNotIn` i) => Database i -> Sing k -> () -> Database (More i k)
Sub :: ((sub `UnderDisjoint` k) i) => Database i -> Sing k -> Database sub -> Database ((sub `BuriedUnder` k) i)
diff --git a/testsuite/tests/indexed-types/should_fail/T7786.stderr b/testsuite/tests/indexed-types/should_fail/T7786.stderr
index 89984ca6b0..af9ca89b7e 100644
--- a/testsuite/tests/indexed-types/should_fail/T7786.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T7786.stderr
@@ -1,5 +1,5 @@
-T7786.hs:94:41: error:
+T7786.hs:96:41: error:
• Couldn't match type ‘xxx’
with ‘Intersect (BuriedUnder sub k 'Empty) inv’
Expected type: Maybe (Sing xxx)
@@ -14,36 +14,35 @@ T7786.hs:94:41: error:
= do Nil :: Sing xxx <- foogle db k sub
return $ Sub db k sub
• Relevant bindings include
- sub :: Database sub (bound at T7786.hs:94:13)
- k :: Sing k (bound at T7786.hs:94:11)
- db :: Database inv (bound at T7786.hs:94:8)
+ sub :: Database sub (bound at T7786.hs:96:13)
+ k :: Sing k (bound at T7786.hs:96:11)
+ db :: Database inv (bound at T7786.hs:96:8)
addSub :: Database inv
-> Sing k
-> Database sub
-> Maybe (Database (BuriedUnder sub k inv))
- (bound at T7786.hs:94:1)
+ (bound at T7786.hs:96:1)
-T7786.hs:95:31: error:
+T7786.hs:97:31: error:
• Could not deduce: Intersect (BuriedUnder sub k 'Empty) inv
- ~
- 'Empty
+ ~ 'Empty
arising from a use of ‘Sub’
from the context: xxx ~ 'Empty
bound by a pattern with constructor: Nil :: forall a. Sing 'Empty,
in a pattern binding in
'do' block
- at T7786.hs:94:22-24
+ at T7786.hs:96:22-24
• In the second argument of ‘($)’, namely ‘Sub db k sub’
In a stmt of a 'do' block: return $ Sub db k sub
In the expression:
do Nil :: Sing xxx <- foogle db k sub
return $ Sub db k sub
• Relevant bindings include
- sub :: Database sub (bound at T7786.hs:94:13)
- k :: Sing k (bound at T7786.hs:94:11)
- db :: Database inv (bound at T7786.hs:94:8)
+ sub :: Database sub (bound at T7786.hs:96:13)
+ k :: Sing k (bound at T7786.hs:96:11)
+ db :: Database inv (bound at T7786.hs:96:8)
addSub :: Database inv
-> Sing k
-> Database sub
-> Maybe (Database (BuriedUnder sub k inv))
- (bound at T7786.hs:94:1)
+ (bound at T7786.hs:96:1)
diff --git a/testsuite/tests/indexed-types/should_fail/T7967.hs b/testsuite/tests/indexed-types/should_fail/T7967.hs
index 093f133563..ba828d60d0 100644
--- a/testsuite/tests/indexed-types/should_fail/T7967.hs
+++ b/testsuite/tests/indexed-types/should_fail/T7967.hs
@@ -1,21 +1,23 @@
{-# LANGUAGE TypeFamilies, DataKinds, TypeOperators, GADTs #-}
module T7967 where
+import Data.Kind (Type)
+
data Nat = Zero | Succ Nat
-data SNat :: Nat -> * where
+data SNat :: Nat -> Type where
SZero :: SNat Zero
SSucc :: SNat n -> SNat (Succ n)
-data HList :: [*] -> * where
+data HList :: [Type] -> Type where
HNil :: HList '[]
HCons :: h -> HList t -> HList (h ': t)
-data Index :: Nat -> [*] -> * where
+data Index :: Nat -> [Type] -> Type where
IZero :: Index Zero (h ': t)
ISucc :: Index n l -> Index (Succ n) (h ': l)
-type family Lookup (n :: Nat) (l :: [*]) :: *
+type family Lookup (n :: Nat) (l :: [Type]) :: Type
type instance Lookup Zero (h ': t) = h
type instance Lookup (Succ n) (h ': t) = Lookup n t
diff --git a/testsuite/tests/indexed-types/should_fail/T7967.stderr b/testsuite/tests/indexed-types/should_fail/T7967.stderr
index 44fb064594..63d2ba8328 100644
--- a/testsuite/tests/indexed-types/should_fail/T7967.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T7967.stderr
@@ -1,7 +1,7 @@
-T7967.hs:31:26:
- Couldn't match type ‘h0 : t0’ with ‘'[]’
- Expected type: Index n l
- Actual type: Index 'Zero (h0 : t0)
- In the expression: IZero
- In an equation for ‘sNatToIndex’: sNatToIndex SZero HNil = IZero
+T7967.hs:33:26: error:
+ • Couldn't match type ‘h0 : t0’ with ‘'[]’
+ Expected type: Index n l
+ Actual type: Index 'Zero (h0 : t0)
+ • In the expression: IZero
+ In an equation for ‘sNatToIndex’: sNatToIndex SZero HNil = IZero
diff --git a/testsuite/tests/indexed-types/should_fail/T9036.hs b/testsuite/tests/indexed-types/should_fail/T9036.hs
index 550adb4b0a..54af6f6714 100644
--- a/testsuite/tests/indexed-types/should_fail/T9036.hs
+++ b/testsuite/tests/indexed-types/should_fail/T9036.hs
@@ -2,14 +2,15 @@
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE TypeFamilies #-}
-
module T9036 where
+import Data.Kind
+
class UncurryM t where
- type GetMonad t :: * -> *
+ type GetMonad t :: Type -> Type
class Curry a b where
- type Curried a b :: *
+ type Curried a b :: Type
gSimple :: String -> String -> [String]
gSimple = simpleLogger (return ())
diff --git a/testsuite/tests/indexed-types/should_fail/T9036.stderr b/testsuite/tests/indexed-types/should_fail/T9036.stderr
index 6f2c162f1a..151dfb7f2d 100644
--- a/testsuite/tests/indexed-types/should_fail/T9036.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T9036.stderr
@@ -1,5 +1,5 @@
-T9036.hs:17:17: error:
+T9036.hs:18:17: error:
• Couldn't match type ‘Curried t0 [t0]’ with ‘Curried t [t]’
Expected type: Maybe (GetMonad t after) -> Curried t [t]
Actual type: Maybe (GetMonad t0 after) -> Curried t0 [t0]
diff --git a/testsuite/tests/indexed-types/should_fail/T9662.hs b/testsuite/tests/indexed-types/should_fail/T9662.hs
index 2972eca22f..8563c90403 100644
--- a/testsuite/tests/indexed-types/should_fail/T9662.hs
+++ b/testsuite/tests/indexed-types/should_fail/T9662.hs
@@ -4,10 +4,12 @@
module T9662 where
+import Data.Kind (Type)
+
data Exp a = Exp
data (a:.b) = a:.b
-type family Plain e :: *
+type family Plain e :: Type
type instance Plain (Exp a) = a
type instance Plain (a:.b) = Plain a :. Plain b
diff --git a/testsuite/tests/indexed-types/should_fail/T9662.stderr b/testsuite/tests/indexed-types/should_fail/T9662.stderr
index 54b05665a3..4f35d92b5e 100644
--- a/testsuite/tests/indexed-types/should_fail/T9662.stderr
+++ b/testsuite/tests/indexed-types/should_fail/T9662.stderr
@@ -1,11 +1,11 @@
-T9662.hs:47:8: error:
+T9662.hs:49:8: error:
• Couldn't match type ‘k’ with ‘Int’
‘k’ is a rigid type variable bound by
the type signature for:
test :: forall sh k m n.
Shape (((sh :. k) :. m) :. n) -> Shape (((sh :. m) :. n) :. k)
- at T9662.hs:44:1-50
+ at T9662.hs:46:1-50
Expected type: Exp (((sh :. m) :. n) :. k)
-> Exp (((sh :. m) :. n) :. k)
Actual type: Exp
@@ -32,4 +32,4 @@ T9662.hs:47:8: error:
• Relevant bindings include
test :: Shape (((sh :. k) :. m) :. n)
-> Shape (((sh :. m) :. n) :. k)
- (bound at T9662.hs:45:1)
+ (bound at T9662.hs:47:1)
diff --git a/testsuite/tests/indexed-types/should_run/T11465a.hs b/testsuite/tests/indexed-types/should_run/T11465a.hs
index d3626cf198..93d72545e3 100644
--- a/testsuite/tests/indexed-types/should_run/T11465a.hs
+++ b/testsuite/tests/indexed-types/should_run/T11465a.hs
@@ -2,7 +2,6 @@
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE TypeInType #-}
import GHC.Exts
import GHC.Types
diff --git a/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs b/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs
index c2b4bd6120..56f93fb7af 100644
--- a/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs
+++ b/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs
@@ -17,14 +17,15 @@
import GHC.Generics
import Data.Data
import Data.Proxy
+import Data.Kind
-type family FirstSelector (f :: * -> *) :: Meta
+type family FirstSelector (f :: Type -> Type) :: Meta
type instance FirstSelector (M1 D x f) = FirstSelector f
type instance FirstSelector (M1 C x f) = FirstSelector f
type instance FirstSelector (a :*: b) = FirstSelector a
type instance FirstSelector (M1 S s f) = s
-data SelectorProxy (s :: Meta) (f :: * -> *) a = SelectorProxy
+data SelectorProxy (s :: Meta) (f :: Type -> Type) a = SelectorProxy
type SelectorProxy' (s :: Meta) = SelectorProxy s Proxy ()
-- Extract the first selector name using GHC.Generics
diff --git a/testsuite/tests/overloadedrecflds/should_run/overloadedrecfldsrun07.hs b/testsuite/tests/overloadedrecflds/should_run/overloadedrecfldsrun07.hs
index c492ac87a1..fdd81c213d 100644
--- a/testsuite/tests/overloadedrecflds/should_run/overloadedrecfldsrun07.hs
+++ b/testsuite/tests/overloadedrecflds/should_run/overloadedrecfldsrun07.hs
@@ -1,10 +1,10 @@
{-# LANGUAGE DataKinds
+ , PolyKinds
, FlexibleContexts
, FlexibleInstances
, GADTs
, MultiParamTypeClasses
, OverloadedLabels
- , TypeInType
, ScopedTypeVariables
, TypeApplications
, TypeOperators
@@ -13,13 +13,13 @@
import GHC.OverloadedLabels
import GHC.Records
-import GHC.TypeLits hiding (type (*))
+import GHC.TypeLits
import Data.Kind
data Label (x :: Symbol) = Label
data Labelled x a = Label x := a
-data Rec :: forall k. [(k, *)] -> * where
+data Rec :: forall k. [(k, Type)] -> Type where
Nil :: Rec '[]
(:>) :: Labelled x a -> Rec xs -> Rec ('(x, a) ': xs)
infixr 5 :>
diff --git a/testsuite/tests/parser/should_compile/DumpParsedAst.stderr b/testsuite/tests/parser/should_compile/DumpParsedAst.stderr
index ea9becb6c5..a1765035fb 100644
--- a/testsuite/tests/parser/should_compile/DumpParsedAst.stderr
+++ b/testsuite/tests/parser/should_compile/DumpParsedAst.stderr
@@ -80,77 +80,56 @@
(HsParTy
(NoExt)
({ DumpParsedAst.hs:8:11-16 }
- (HsAppsTy
+ (HsOpTy
(NoExt)
- [({ DumpParsedAst.hs:8:11 }
- (HsAppPrefix
- (NoExt)
- ({ DumpParsedAst.hs:8:11 }
- (HsTyVar
- (NoExt)
- (NotPromoted)
- ({ DumpParsedAst.hs:8:11 }
- (Unqual
- {OccName: a}))))))
- ,({ DumpParsedAst.hs:8:13 }
- (HsAppInfix
- (NoExt)
- ({ DumpParsedAst.hs:8:13 }
- (Exact
- {Name: :}))))
- ,({ DumpParsedAst.hs:8:15-16 }
- (HsAppPrefix
- (NoExt)
- ({ DumpParsedAst.hs:8:15-16 }
- (HsTyVar
- (NoExt)
- (NotPromoted)
- ({ DumpParsedAst.hs:8:15-16 }
- (Unqual
- {OccName: as}))))))]))))]
- (Prefix)
- ({ DumpParsedAst.hs:8:21-36 }
- (HsAppsTy
- (NoExt)
- [({ DumpParsedAst.hs:8:21-24 }
- (HsAppPrefix
- (NoExt)
- ({ DumpParsedAst.hs:8:21-24 }
+ ({ DumpParsedAst.hs:8:11 }
(HsTyVar
(NoExt)
(NotPromoted)
- ({ DumpParsedAst.hs:8:21-24 }
+ ({ DumpParsedAst.hs:8:11 }
(Unqual
- {OccName: Succ}))))))
- ,({ DumpParsedAst.hs:8:26-36 }
- (HsAppPrefix
- (NoExt)
- ({ DumpParsedAst.hs:8:26-36 }
- (HsParTy
+ {OccName: a}))))
+ ({ DumpParsedAst.hs:8:13 }
+ (Exact
+ {Name: :}))
+ ({ DumpParsedAst.hs:8:15-16 }
+ (HsTyVar
(NoExt)
- ({ DumpParsedAst.hs:8:27-35 }
- (HsAppsTy
- (NoExt)
- [({ DumpParsedAst.hs:8:27-32 }
- (HsAppPrefix
- (NoExt)
- ({ DumpParsedAst.hs:8:27-32 }
- (HsTyVar
- (NoExt)
- (NotPromoted)
- ({ DumpParsedAst.hs:8:27-32 }
- (Unqual
- {OccName: Length}))))))
- ,({ DumpParsedAst.hs:8:34-35 }
- (HsAppPrefix
- (NoExt)
- ({ DumpParsedAst.hs:8:34-35 }
- (HsTyVar
- (NoExt)
- (NotPromoted)
- ({ DumpParsedAst.hs:8:34-35 }
- (Unqual
- {OccName: as}))))))]))))))])))))
+ (NotPromoted)
+ ({ DumpParsedAst.hs:8:15-16 }
+ (Unqual
+ {OccName: as}))))))))]
+ (Prefix)
+ ({ DumpParsedAst.hs:8:21-36 }
+ (HsAppTy
+ (NoExt)
+ ({ DumpParsedAst.hs:8:21-24 }
+ (HsTyVar
+ (NoExt)
+ (NotPromoted)
+ ({ DumpParsedAst.hs:8:21-24 }
+ (Unqual
+ {OccName: Succ}))))
+ ({ DumpParsedAst.hs:8:26-36 }
+ (HsParTy
+ (NoExt)
+ ({ DumpParsedAst.hs:8:27-35 }
+ (HsAppTy
+ (NoExt)
+ ({ DumpParsedAst.hs:8:27-32 }
+ (HsTyVar
+ (NoExt)
+ (NotPromoted)
+ ({ DumpParsedAst.hs:8:27-32 }
+ (Unqual
+ {OccName: Length}))))
+ ({ DumpParsedAst.hs:8:34-35 }
+ (HsTyVar
+ (NoExt)
+ (NotPromoted)
+ ({ DumpParsedAst.hs:8:34-35 }
+ (Unqual
+ {OccName: as})))))))))))))
,({ DumpParsedAst.hs:9:3-24 }
(HsIB
(NoExt)
diff --git a/testsuite/tests/parser/should_compile/DumpRenamedAst.hs b/testsuite/tests/parser/should_compile/DumpRenamedAst.hs
index 493b736df5..bf3e372461 100644
--- a/testsuite/tests/parser/should_compile/DumpRenamedAst.hs
+++ b/testsuite/tests/parser/should_compile/DumpRenamedAst.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE DataKinds, GADTs, PolyKinds, RankNTypes, TypeOperators,
- TypeFamilies #-}
+ TypeFamilies, StarIsType #-}
module DumpRenamedAst where
diff --git a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
index 4ca996fde0..673b391d7f 100644
--- a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
+++ b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
@@ -69,10 +69,10 @@
{Name: DumpRenamedAst.Peano})
(HsQTvs
(HsQTvsRn
- []
- {NameSet:
- []})
- [])
+ []
+ {NameSet:
+ []})
+ [])
(Prefix)
(HsDataDefn
(NoExt)
@@ -124,8 +124,8 @@
[({ DumpRenamedAst.hs:9:3-36 }
(HsIB
(HsIBRn
- [{Name: a}
- ,{Name: as}]
+ [{Name: a}
+ ,{Name: as}]
(True))
(FamEqn
(NoExt)
@@ -182,7 +182,7 @@
,({ DumpRenamedAst.hs:10:3-24 }
(HsIB
(HsIBRn
- []
+ []
(True))
(FamEqn
(NoExt)
@@ -204,7 +204,7 @@
{Name: DumpRenamedAst.Length})
(HsQTvs
(HsQTvsRn
- [{Name: k}]
+ [{Name: k}]
{NameSet:
[]})
[({ DumpRenamedAst.hs:8:20-30 }
@@ -246,10 +246,10 @@
{Name: DumpRenamedAst.Nat})
(HsQTvs
(HsQTvsRn
- [{Name: k}]
- {NameSet:
- []})
- [])
+ [{Name: k}]
+ {NameSet:
+ []})
+ [])
(Prefix)
({ DumpRenamedAst.hs:12:17-30 }
(KindSig
@@ -273,11 +273,9 @@
({ DumpRenamedAst.hs:12:25 }
{Name: k})))
({ DumpRenamedAst.hs:12:30 }
- (HsTyVar
+ (HsStarTy
(NoExt)
- (NotPromoted)
- ({ DumpRenamedAst.hs:12:30 }
- {Name: GHC.Types.*})))))))))
+ (False)))))))))
(Nothing))))]
[]
[({ DumpRenamedAst.hs:(15,1)-(16,45) }
@@ -286,8 +284,8 @@
(DataFamInstDecl
(HsIB
(HsIBRn
- [{Name: k}
- ,{Name: a}]
+ [{Name: k}
+ ,{Name: a}]
(True))
(FamEqn
(NoExt)
@@ -312,11 +310,9 @@
({ DumpRenamedAst.hs:15:28 }
{Name: k})))
({ DumpRenamedAst.hs:15:33 }
- (HsTyVar
+ (HsStarTy
(NoExt)
- (NotPromoted)
- ({ DumpRenamedAst.hs:15:33 }
- {Name: GHC.Types.*})))))))]
+ (False)))))))]
(Prefix)
(HsDataDefn
(NoExt)
@@ -341,17 +337,13 @@
({ DumpRenamedAst.hs:15:40 }
{Name: k})))
({ DumpRenamedAst.hs:15:45 }
- (HsTyVar
+ (HsStarTy
(NoExt)
- (NotPromoted)
- ({ DumpRenamedAst.hs:15:45 }
- {Name: GHC.Types.*})))))))
+ (False)))))))
({ DumpRenamedAst.hs:15:51 }
- (HsTyVar
+ (HsStarTy
(NoExt)
- (NotPromoted)
- ({ DumpRenamedAst.hs:15:51 }
- {Name: GHC.Types.*}))))))
+ (False))))))
[({ DumpRenamedAst.hs:16:3-45 }
(ConDeclGADT
(NoExt)
@@ -360,11 +352,11 @@
(False)
(HsQTvs
(HsQTvsRn
- [{Name: f}
- ,{Name: g}]
- {NameSet:
- []})
- [])
+ [{Name: f}
+ ,{Name: g}]
+ {NameSet:
+ []})
+ [])
(Nothing)
(PrefixCon
[({ DumpRenamedAst.hs:16:10-34 }
diff --git a/testsuite/tests/parser/should_compile/T10379.hs b/testsuite/tests/parser/should_compile/T10379.hs
index 1eb5f96382..eb231c4415 100644
--- a/testsuite/tests/parser/should_compile/T10379.hs
+++ b/testsuite/tests/parser/should_compile/T10379.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE KindSignatures, GADTs, DataKinds, TypeOperators #-}
+{-# LANGUAGE KindSignatures, GADTs, DataKinds #-}
module Foo where
data Foo1 :: [*] -> * where
diff --git a/testsuite/tests/parser/should_fail/T15209.stderr b/testsuite/tests/parser/should_fail/T15209.stderr
index f5418fab74..9d1e151cf2 100644
--- a/testsuite/tests/parser/should_fail/T15209.stderr
+++ b/testsuite/tests/parser/should_fail/T15209.stderr
@@ -1,2 +1,2 @@
-T15209.hs:6:8: error: Not in scope: type constructor or class ‘~#’
+T15209.hs:6:10: error: Not in scope: type constructor or class ‘~#’
diff --git a/testsuite/tests/parser/should_fail/all.T b/testsuite/tests/parser/should_fail/all.T
index 9fcc3ba97d..1e71e40420 100644
--- a/testsuite/tests/parser/should_fail/all.T
+++ b/testsuite/tests/parser/should_fail/all.T
@@ -120,3 +120,8 @@ test('NumericUnderscoresFail1',
grep_errmsg(r'^NumericUnderscoresFail1.hs:'), compile_fail, [''])
test('InfixAppPatErr', normal, compile_fail, [''])
+
+test('typeops_A', normal, compile_fail, [''])
+test('typeops_B', normal, compile_fail, [''])
+test('typeops_C', normal, compile_fail, [''])
+test('typeops_D', normal, compile_fail, [''])
diff --git a/testsuite/tests/parser/should_fail/readFail036.hs b/testsuite/tests/parser/should_fail/readFail036.hs
index 2bb23149dd..15afd980f8 100644
--- a/testsuite/tests/parser/should_fail/readFail036.hs
+++ b/testsuite/tests/parser/should_fail/readFail036.hs
@@ -1,5 +1,5 @@
-
module Foo where
-data Foo (a :: *) = Foo a
+import Data.Kind (Type)
+data Foo (a :: Type) = Foo a
diff --git a/testsuite/tests/parser/should_fail/readFail036.stderr b/testsuite/tests/parser/should_fail/readFail036.stderr
index 0d22eb8363..a66afacacf 100644
--- a/testsuite/tests/parser/should_fail/readFail036.stderr
+++ b/testsuite/tests/parser/should_fail/readFail036.stderr
@@ -1,5 +1,5 @@
-readFail036.hs:4:16:
- Illegal kind signature: ‘*’
+readFail036.hs:5:16: error:
+ Illegal kind signature: ‘Type’
Perhaps you intended to use KindSignatures
In the data type declaration for ‘Foo’
diff --git a/testsuite/tests/parser/should_fail/typeops_A.hs b/testsuite/tests/parser/should_fail/typeops_A.hs
new file mode 100644
index 0000000000..abd7f528c6
--- /dev/null
+++ b/testsuite/tests/parser/should_fail/typeops_A.hs
@@ -0,0 +1 @@
+type X = 1 +
diff --git a/testsuite/tests/parser/should_fail/typeops_A.stderr b/testsuite/tests/parser/should_fail/typeops_A.stderr
new file mode 100644
index 0000000000..69f7aac6be
--- /dev/null
+++ b/testsuite/tests/parser/should_fail/typeops_A.stderr
@@ -0,0 +1,2 @@
+
+typeops_A.hs:1:12: error: Operator applied to too few arguments: +
diff --git a/testsuite/tests/parser/should_fail/typeops_B.hs b/testsuite/tests/parser/should_fail/typeops_B.hs
new file mode 100644
index 0000000000..ac65f872de
--- /dev/null
+++ b/testsuite/tests/parser/should_fail/typeops_B.hs
@@ -0,0 +1 @@
+type X = + 1
diff --git a/testsuite/tests/parser/should_fail/typeops_B.stderr b/testsuite/tests/parser/should_fail/typeops_B.stderr
new file mode 100644
index 0000000000..030516a27f
--- /dev/null
+++ b/testsuite/tests/parser/should_fail/typeops_B.stderr
@@ -0,0 +1,2 @@
+
+typeops_B.hs:1:10: error: Operator applied to too few arguments: +
diff --git a/testsuite/tests/parser/should_fail/typeops_C.hs b/testsuite/tests/parser/should_fail/typeops_C.hs
new file mode 100644
index 0000000000..e55838934a
--- /dev/null
+++ b/testsuite/tests/parser/should_fail/typeops_C.hs
@@ -0,0 +1 @@
+type X = 1 + + 2
diff --git a/testsuite/tests/parser/should_fail/typeops_C.stderr b/testsuite/tests/parser/should_fail/typeops_C.stderr
new file mode 100644
index 0000000000..280323bb67
--- /dev/null
+++ b/testsuite/tests/parser/should_fail/typeops_C.stderr
@@ -0,0 +1,2 @@
+
+typeops_C.hs:1:12: error: Operator applied to too few arguments: +
diff --git a/testsuite/tests/parser/should_fail/typeops_D.hs b/testsuite/tests/parser/should_fail/typeops_D.hs
new file mode 100644
index 0000000000..655b2f15f0
--- /dev/null
+++ b/testsuite/tests/parser/should_fail/typeops_D.hs
@@ -0,0 +1 @@
+type X = +
diff --git a/testsuite/tests/parser/should_fail/typeops_D.stderr b/testsuite/tests/parser/should_fail/typeops_D.stderr
new file mode 100644
index 0000000000..0ce7e29559
--- /dev/null
+++ b/testsuite/tests/parser/should_fail/typeops_D.stderr
@@ -0,0 +1,2 @@
+
+typeops_D.hs:1:10: error: Operator applied to too few arguments: +
diff --git a/testsuite/tests/partial-sigs/should_compile/T15039a.hs b/testsuite/tests/partial-sigs/should_compile/T15039a.hs
index 7f32cb8488..3430f14bb9 100644
--- a/testsuite/tests/partial-sigs/should_compile/T15039a.hs
+++ b/testsuite/tests/partial-sigs/should_compile/T15039a.hs
@@ -2,7 +2,7 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_GHC -fdefer-type-errors #-}
module T15039a where
@@ -15,13 +15,13 @@ import Data.Type.Equality
data Dict :: Constraint -> Type where
Dict :: c => Dict c
-ex1 :: Dict ((a :: *) ~ (b :: *)) -> ()
+ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> ()
ex1 (Dict :: _) = ()
-ex2 :: Dict ((a :: *) ~~ (b :: *)) -> ()
+ex2 :: Dict ((a :: Type) ~~ (b :: Type)) -> ()
ex2 (Dict :: _) = ()
-ex3 :: Dict ((a :: *) ~~ (b :: k)) -> ()
+ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> ()
ex3 (Dict :: _) = ()
-- Don't know how to make GHC print an unlifted, nominal equality in an error
@@ -29,10 +29,10 @@ ex3 (Dict :: _) = ()
--
-- ex4, ex5 :: ???
-ex6 :: Dict (Coercible (a :: *) (b :: *)) -> ()
+ex6 :: Dict (Coercible (a :: Type) (b :: Type)) -> ()
ex6 (Dict :: _) = ()
-ex7 :: _ => Coercion (a :: *) (b :: *)
+ex7 :: _ => Coercion (a :: Type) (b :: Type)
ex7 = Coercion
-- Don't know how to make GHC print an unlifted, heterogeneous,
diff --git a/testsuite/tests/partial-sigs/should_compile/T15039a.stderr b/testsuite/tests/partial-sigs/should_compile/T15039a.stderr
index c45e82e5ef..d9c8e1056f 100644
--- a/testsuite/tests/partial-sigs/should_compile/T15039a.stderr
+++ b/testsuite/tests/partial-sigs/should_compile/T15039a.stderr
@@ -4,7 +4,7 @@ T15039a.hs:19:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
ex1 :: forall a b. Dict (a ~ b) -> ()
- at T15039a.hs:18:1-39
+ at T15039a.hs:18:1-45
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex1’: ex1 (Dict :: _) = ()
@@ -16,7 +16,7 @@ T15039a.hs:22:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
ex2 :: forall a b. Dict (a ~ b) -> ()
- at T15039a.hs:21:1-40
+ at T15039a.hs:21:1-46
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex2’: ex2 (Dict :: _) = ()
@@ -28,7 +28,7 @@ T15039a.hs:25:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
Where: ‘a’, ‘b’, ‘k’ are rigid type variables bound by
the type signature for:
ex3 :: forall k a (b :: k). Dict (a ~~ b) -> ()
- at T15039a.hs:24:1-40
+ at T15039a.hs:24:1-43
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex3’: ex3 (Dict :: _) = ()
@@ -40,7 +40,7 @@ T15039a.hs:33:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
ex6 :: forall a b. Dict (Coercible a b) -> ()
- at T15039a.hs:32:1-47
+ at T15039a.hs:32:1-53
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex6’: ex6 (Dict :: _) = ()
@@ -52,4 +52,5 @@ T15039a.hs:35:8: warning: [-Wpartial-type-signatures (in -Wdefault)]
Where: ‘a’, ‘b’ are rigid type variables bound by
the inferred type of ex7 :: Coercible a b => Coercion a b
at T15039a.hs:36:1-14
- • In the type signature: ex7 :: _ => Coercion (a :: *) (b :: *)
+ • In the type signature:
+ ex7 :: _ => Coercion (a :: Type) (b :: Type)
diff --git a/testsuite/tests/partial-sigs/should_compile/T15039b.hs b/testsuite/tests/partial-sigs/should_compile/T15039b.hs
index 4966059912..5069e04655 100644
--- a/testsuite/tests/partial-sigs/should_compile/T15039b.hs
+++ b/testsuite/tests/partial-sigs/should_compile/T15039b.hs
@@ -2,7 +2,7 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_GHC -fdefer-type-errors #-}
module T15039b where
@@ -15,13 +15,13 @@ import Data.Type.Equality
data Dict :: Constraint -> Type where
Dict :: c => Dict c
-ex1 :: Dict ((a :: *) ~ (b :: *)) -> ()
+ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> ()
ex1 (Dict :: _) = ()
-ex2 :: Dict ((a :: *) ~~ (b :: *)) -> ()
+ex2 :: Dict ((a :: Type) ~~ (b :: Type)) -> ()
ex2 (Dict :: _) = ()
-ex3 :: Dict ((a :: *) ~~ (b :: k)) -> ()
+ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> ()
ex3 (Dict :: _) = ()
-- Don't know how to make GHC print an unlifted, nominal equality in an error
@@ -29,10 +29,10 @@ ex3 (Dict :: _) = ()
--
-- ex4, ex5 :: ???
-ex6 :: Dict (Coercible (a :: *) (b :: *)) -> ()
+ex6 :: Dict (Coercible (a :: Type) (b :: Type)) -> ()
ex6 (Dict :: _) = ()
-ex7 :: _ => Coercion (a :: *) (b :: *)
+ex7 :: _ => Coercion (a :: Type) (b :: Type)
ex7 = Coercion
-- Don't know how to make GHC print an unlifted, heterogeneous,
diff --git a/testsuite/tests/partial-sigs/should_compile/T15039b.stderr b/testsuite/tests/partial-sigs/should_compile/T15039b.stderr
index dffde1c8f1..020c253516 100644
--- a/testsuite/tests/partial-sigs/should_compile/T15039b.stderr
+++ b/testsuite/tests/partial-sigs/should_compile/T15039b.stderr
@@ -1,56 +1,62 @@
T15039b.hs:19:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
- • Found type wildcard ‘_’ standing for ‘Dict ((a :: *) ~ (b :: *))’
+ • Found type wildcard ‘_’
+ standing for ‘Dict ((a :: Type) ~ (b :: Type))’
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
- ex1 :: forall a b. Dict ((a :: *) ~ (b :: *)) -> ()
- at T15039b.hs:18:1-39
+ ex1 :: forall a b. Dict ((a :: Type) ~ (b :: Type)) -> ()
+ at T15039b.hs:18:1-45
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex1’: ex1 (Dict :: _) = ()
• Relevant bindings include
- ex1 :: Dict ((a :: *) ~ (b :: *)) -> () (bound at T15039b.hs:19:1)
+ ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> ()
+ (bound at T15039b.hs:19:1)
T15039b.hs:22:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
- • Found type wildcard ‘_’ standing for ‘Dict ((a :: *) ~ (b :: *))’
+ • Found type wildcard ‘_’
+ standing for ‘Dict ((a :: Type) ~ (b :: Type))’
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
- ex2 :: forall a b. Dict ((a :: *) ~ (b :: *)) -> ()
- at T15039b.hs:21:1-40
+ ex2 :: forall a b. Dict ((a :: Type) ~ (b :: Type)) -> ()
+ at T15039b.hs:21:1-46
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex2’: ex2 (Dict :: _) = ()
• Relevant bindings include
- ex2 :: Dict ((a :: *) ~ (b :: *)) -> () (bound at T15039b.hs:22:1)
+ ex2 :: Dict ((a :: Type) ~ (b :: Type)) -> ()
+ (bound at T15039b.hs:22:1)
T15039b.hs:25:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
• Found type wildcard ‘_’
- standing for ‘Dict ((a :: *) ~~ (b :: k))’
+ standing for ‘Dict ((a :: Type) ~~ (b :: k))’
Where: ‘a’, ‘b’, ‘k’ are rigid type variables bound by
the type signature for:
- ex3 :: forall k a (b :: k). Dict ((a :: *) ~~ (b :: k)) -> ()
- at T15039b.hs:24:1-40
+ ex3 :: forall k a (b :: k). Dict ((a :: Type) ~~ (b :: k)) -> ()
+ at T15039b.hs:24:1-43
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex3’: ex3 (Dict :: _) = ()
• Relevant bindings include
- ex3 :: Dict ((a :: *) ~~ (b :: k)) -> () (bound at T15039b.hs:25:1)
+ ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> ()
+ (bound at T15039b.hs:25:1)
T15039b.hs:33:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
- • Found type wildcard ‘_’ standing for ‘Dict (Coercible * a b)’
+ • Found type wildcard ‘_’ standing for ‘Dict (Coercible Type a b)’
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
- ex6 :: forall a b. Dict (Coercible * a b) -> ()
- at T15039b.hs:32:1-47
+ ex6 :: forall a b. Dict (Coercible Type a b) -> ()
+ at T15039b.hs:32:1-53
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex6’: ex6 (Dict :: _) = ()
• Relevant bindings include
- ex6 :: Dict (Coercible * a b) -> () (bound at T15039b.hs:33:1)
+ ex6 :: Dict (Coercible Type a b) -> () (bound at T15039b.hs:33:1)
T15039b.hs:35:8: warning: [-Wpartial-type-signatures (in -Wdefault)]
- • Found type wildcard ‘_’ standing for ‘Coercible * a b’
+ • Found type wildcard ‘_’ standing for ‘Coercible Type a b’
Where: ‘a’, ‘b’ are rigid type variables bound by
- the inferred type of ex7 :: Coercible * a b => Coercion * a b
+ the inferred type of ex7 :: Coercible Type a b => Coercion Type a b
at T15039b.hs:36:1-14
- • In the type signature: ex7 :: _ => Coercion (a :: *) (b :: *)
+ • In the type signature:
+ ex7 :: _ => Coercion (a :: Type) (b :: Type)
diff --git a/testsuite/tests/partial-sigs/should_compile/T15039c.hs b/testsuite/tests/partial-sigs/should_compile/T15039c.hs
index aa54c4e919..062404766f 100644
--- a/testsuite/tests/partial-sigs/should_compile/T15039c.hs
+++ b/testsuite/tests/partial-sigs/should_compile/T15039c.hs
@@ -2,7 +2,7 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_GHC -fdefer-type-errors #-}
module T15039c where
@@ -15,13 +15,13 @@ import Data.Type.Equality
data Dict :: Constraint -> Type where
Dict :: c => Dict c
-ex1 :: Dict ((a :: *) ~ (b :: *)) -> ()
+ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> ()
ex1 (Dict :: _) = ()
-ex2 :: Dict ((a :: *) ~~ (b :: *)) -> ()
+ex2 :: Dict ((a :: Type) ~~ (b :: Type)) -> ()
ex2 (Dict :: _) = ()
-ex3 :: Dict ((a :: *) ~~ (b :: k)) -> ()
+ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> ()
ex3 (Dict :: _) = ()
-- Don't know how to make GHC print an unlifted, nominal equality in an error
@@ -29,10 +29,10 @@ ex3 (Dict :: _) = ()
--
-- ex4, ex5 :: ???
-ex6 :: Dict (Coercible (a :: *) (b :: *)) -> ()
+ex6 :: Dict (Coercible (a :: Type) (b :: Type)) -> ()
ex6 (Dict :: _) = ()
-ex7 :: _ => Coercion (a :: *) (b :: *)
+ex7 :: _ => Coercion (a :: Type) (b :: Type)
ex7 = Coercion
-- Don't know how to make GHC print an unlifted, heterogeneous,
diff --git a/testsuite/tests/partial-sigs/should_compile/T15039c.stderr b/testsuite/tests/partial-sigs/should_compile/T15039c.stderr
index bf3aff1081..29989c2cdc 100644
--- a/testsuite/tests/partial-sigs/should_compile/T15039c.stderr
+++ b/testsuite/tests/partial-sigs/should_compile/T15039c.stderr
@@ -4,7 +4,7 @@ T15039c.hs:19:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
ex1 :: forall a b. Dict (a ~ b) -> ()
- at T15039c.hs:18:1-39
+ at T15039c.hs:18:1-45
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex1’: ex1 (Dict :: _) = ()
@@ -16,7 +16,7 @@ T15039c.hs:22:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
ex2 :: forall a b. Dict (a ~~ b) -> ()
- at T15039c.hs:21:1-40
+ at T15039c.hs:21:1-46
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex2’: ex2 (Dict :: _) = ()
@@ -28,7 +28,7 @@ T15039c.hs:25:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
Where: ‘a’, ‘b’, ‘k’ are rigid type variables bound by
the type signature for:
ex3 :: forall k a (b :: k). Dict (a ~~ b) -> ()
- at T15039c.hs:24:1-40
+ at T15039c.hs:24:1-43
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex3’: ex3 (Dict :: _) = ()
@@ -40,7 +40,7 @@ T15039c.hs:33:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
ex6 :: forall a b. Dict (Coercible a b) -> ()
- at T15039c.hs:32:1-47
+ at T15039c.hs:32:1-53
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex6’: ex6 (Dict :: _) = ()
@@ -52,4 +52,5 @@ T15039c.hs:35:8: warning: [-Wpartial-type-signatures (in -Wdefault)]
Where: ‘a’, ‘b’ are rigid type variables bound by
the inferred type of ex7 :: (a ~R# b) => Coercion a b
at T15039c.hs:36:1-14
- • In the type signature: ex7 :: _ => Coercion (a :: *) (b :: *)
+ • In the type signature:
+ ex7 :: _ => Coercion (a :: Type) (b :: Type)
diff --git a/testsuite/tests/partial-sigs/should_compile/T15039d.hs b/testsuite/tests/partial-sigs/should_compile/T15039d.hs
index 3b5a5a27c3..7a87244f99 100644
--- a/testsuite/tests/partial-sigs/should_compile/T15039d.hs
+++ b/testsuite/tests/partial-sigs/should_compile/T15039d.hs
@@ -2,7 +2,7 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PartialTypeSignatures #-}
{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_GHC -fdefer-type-errors #-}
module T15039d where
@@ -15,13 +15,13 @@ import Data.Type.Equality
data Dict :: Constraint -> Type where
Dict :: c => Dict c
-ex1 :: Dict ((a :: *) ~ (b :: *)) -> ()
+ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> ()
ex1 (Dict :: _) = ()
-ex2 :: Dict ((a :: *) ~~ (b :: *)) -> ()
+ex2 :: Dict ((a :: Type) ~~ (b :: Type)) -> ()
ex2 (Dict :: _) = ()
-ex3 :: Dict ((a :: *) ~~ (b :: k)) -> ()
+ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> ()
ex3 (Dict :: _) = ()
-- Don't know how to make GHC print an unlifted, nominal equality in an error
@@ -29,10 +29,10 @@ ex3 (Dict :: _) = ()
--
-- ex4, ex5 :: ???
-ex6 :: Dict (Coercible (a :: *) (b :: *)) -> ()
+ex6 :: Dict (Coercible (a :: Type) (b :: Type)) -> ()
ex6 (Dict :: _) = ()
-ex7 :: _ => Coercion (a :: *) (b :: *)
+ex7 :: _ => Coercion (a :: Type) (b :: Type)
ex7 = Coercion
-- Don't know how to make GHC print an unlifted, heterogeneous,
diff --git a/testsuite/tests/partial-sigs/should_compile/T15039d.stderr b/testsuite/tests/partial-sigs/should_compile/T15039d.stderr
index 8595955f87..6c6e1a0c24 100644
--- a/testsuite/tests/partial-sigs/should_compile/T15039d.stderr
+++ b/testsuite/tests/partial-sigs/should_compile/T15039d.stderr
@@ -1,58 +1,64 @@
T15039d.hs:19:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
- • Found type wildcard ‘_’ standing for ‘Dict ((a :: *) ~ (b :: *))’
+ • Found type wildcard ‘_’
+ standing for ‘Dict ((a :: Type) ~ (b :: Type))’
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
- ex1 :: forall a b. Dict ((a :: *) ~ (b :: *)) -> ()
- at T15039d.hs:18:1-39
+ ex1 :: forall a b. Dict ((a :: Type) ~ (b :: Type)) -> ()
+ at T15039d.hs:18:1-45
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex1’: ex1 (Dict :: _) = ()
• Relevant bindings include
- ex1 :: Dict ((a :: *) ~ (b :: *)) -> () (bound at T15039d.hs:19:1)
+ ex1 :: Dict ((a :: Type) ~ (b :: Type)) -> ()
+ (bound at T15039d.hs:19:1)
T15039d.hs:22:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
• Found type wildcard ‘_’
- standing for ‘Dict ((a :: *) ~~ (b :: *))’
+ standing for ‘Dict ((a :: Type) ~~ (b :: Type))’
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
- ex2 :: forall a b. Dict ((a :: *) ~~ (b :: *)) -> ()
- at T15039d.hs:21:1-40
+ ex2 :: forall a b. Dict ((a :: Type) ~~ (b :: Type)) -> ()
+ at T15039d.hs:21:1-46
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex2’: ex2 (Dict :: _) = ()
• Relevant bindings include
- ex2 :: Dict ((a :: *) ~~ (b :: *)) -> () (bound at T15039d.hs:22:1)
+ ex2 :: Dict ((a :: Type) ~~ (b :: Type)) -> ()
+ (bound at T15039d.hs:22:1)
T15039d.hs:25:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
• Found type wildcard ‘_’
- standing for ‘Dict ((a :: *) ~~ (b :: k))’
+ standing for ‘Dict ((a :: Type) ~~ (b :: k))’
Where: ‘a’, ‘b’, ‘k’ are rigid type variables bound by
the type signature for:
- ex3 :: forall k a (b :: k). Dict ((a :: *) ~~ (b :: k)) -> ()
- at T15039d.hs:24:1-40
+ ex3 :: forall k a (b :: k). Dict ((a :: Type) ~~ (b :: k)) -> ()
+ at T15039d.hs:24:1-43
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex3’: ex3 (Dict :: _) = ()
• Relevant bindings include
- ex3 :: Dict ((a :: *) ~~ (b :: k)) -> () (bound at T15039d.hs:25:1)
+ ex3 :: Dict ((a :: Type) ~~ (b :: k)) -> ()
+ (bound at T15039d.hs:25:1)
T15039d.hs:33:14: warning: [-Wpartial-type-signatures (in -Wdefault)]
- • Found type wildcard ‘_’ standing for ‘Dict (Coercible * a b)’
+ • Found type wildcard ‘_’ standing for ‘Dict (Coercible Type a b)’
Where: ‘a’, ‘b’ are rigid type variables bound by
the type signature for:
- ex6 :: forall a b. Dict (Coercible * a b) -> ()
- at T15039d.hs:32:1-47
+ ex6 :: forall a b. Dict (Coercible Type a b) -> ()
+ at T15039d.hs:32:1-53
• In a pattern type signature: _
In the pattern: Dict :: _
In an equation for ‘ex6’: ex6 (Dict :: _) = ()
• Relevant bindings include
- ex6 :: Dict (Coercible * a b) -> () (bound at T15039d.hs:33:1)
+ ex6 :: Dict (Coercible Type a b) -> () (bound at T15039d.hs:33:1)
T15039d.hs:35:8: warning: [-Wpartial-type-signatures (in -Wdefault)]
- • Found type wildcard ‘_’ standing for ‘(a :: *) ~R# (b :: *)’
+ • Found type wildcard ‘_’
+ standing for ‘(a :: Type) ~R# (b :: Type)’
Where: ‘a’, ‘b’ are rigid type variables bound by
the inferred type of
- ex7 :: ((a :: *) ~R# (b :: *)) => Coercion * a b
+ ex7 :: ((a :: Type) ~R# (b :: Type)) => Coercion Type a b
at T15039d.hs:36:1-14
- • In the type signature: ex7 :: _ => Coercion (a :: *) (b :: *)
+ • In the type signature:
+ ex7 :: _ => Coercion (a :: Type) (b :: Type)
diff --git a/testsuite/tests/partial-sigs/should_fail/T14040a.hs b/testsuite/tests/partial-sigs/should_fail/T14040a.hs
index 382e21823c..2985339f49 100644
--- a/testsuite/tests/partial-sigs/should_fail/T14040a.hs
+++ b/testsuite/tests/partial-sigs/should_fail/T14040a.hs
@@ -3,7 +3,7 @@
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T14040a where
import Data.Kind
diff --git a/testsuite/tests/partial-sigs/should_fail/T14584.hs b/testsuite/tests/partial-sigs/should_fail/T14584.hs
index 508725eec7..1615b26205 100644
--- a/testsuite/tests/partial-sigs/should_fail/T14584.hs
+++ b/testsuite/tests/partial-sigs/should_fail/T14584.hs
@@ -17,10 +17,10 @@
{-# Language FunctionalDependencies #-}
{-# Language UndecidableSuperClasses #-}
{-# Language UndecidableInstances #-}
-{-# Language TypeInType #-}
{-# Language AllowAmbiguousTypes #-}
{-# Language InstanceSigs, TypeApplications #-}
+
module T14584 where
import Data.Monoid
diff --git a/testsuite/tests/partial-sigs/should_fail/T14584.stderr b/testsuite/tests/partial-sigs/should_fail/T14584.stderr
index b7531aa2ce..c53c822ba3 100644
--- a/testsuite/tests/partial-sigs/should_fail/T14584.stderr
+++ b/testsuite/tests/partial-sigs/should_fail/T14584.stderr
@@ -11,7 +11,7 @@ T14584.hs:56:41: warning: [-Wdeferred-type-errors (in -Wdefault)]
act @_ @_ @act (fromSing @m (sing @m @a :: Sing _))
T14584.hs:56:50: warning: [-Wdeferred-type-errors (in -Wdefault)]
- • Expected kind ‘m1’, but ‘a’ has kind ‘*’
+ • Expected kind ‘m1’, but ‘a’ has kind ‘Type’
• In the type ‘a’
In the second argument of ‘fromSing’, namely
‘(sing @m @a :: Sing _)’
diff --git a/testsuite/tests/patsyn/should_compile/T12698.hs b/testsuite/tests/patsyn/should_compile/T12698.hs
index 27d54d8eba..68cd817677 100644
--- a/testsuite/tests/patsyn/should_compile/T12698.hs
+++ b/testsuite/tests/patsyn/should_compile/T12698.hs
@@ -1,5 +1,5 @@
{-# Language ViewPatterns, TypeOperators, KindSignatures, PolyKinds,
- TypeInType, StandaloneDeriving, GADTs, RebindableSyntax,
+ StandaloneDeriving, GADTs, RebindableSyntax,
RankNTypes, LambdaCase, PatternSynonyms, TypeApplications #-}
module T12698 where
diff --git a/testsuite/tests/patsyn/should_compile/T12968.hs b/testsuite/tests/patsyn/should_compile/T12968.hs
index 9d38500d67..99626df1a7 100644
--- a/testsuite/tests/patsyn/should_compile/T12968.hs
+++ b/testsuite/tests/patsyn/should_compile/T12968.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, GADTs, ScopedTypeVariables, PatternSynonyms,
+{-# LANGUAGE PolyKinds , GADTs, ScopedTypeVariables, PatternSynonyms,
ViewPatterns #-}
module T12968 where
diff --git a/testsuite/tests/patsyn/should_compile/T13768.hs b/testsuite/tests/patsyn/should_compile/T13768.hs
index c4510bd20a..3dc3b84e7e 100644
--- a/testsuite/tests/patsyn/should_compile/T13768.hs
+++ b/testsuite/tests/patsyn/should_compile/T13768.hs
@@ -6,9 +6,11 @@
{-# LANGUAGE ViewPatterns #-}
module T13768 where
-data NS (f :: k -> *) (xs :: [k]) = NS Int
+import Data.Kind (Type)
-data IsNS (f :: k -> *) (xs :: [k]) where
+data NS (f :: k -> Type) (xs :: [k]) = NS Int
+
+data IsNS (f :: k -> Type) (xs :: [k]) where
IsZ :: f x -> IsNS f (x ': xs)
IsS :: NS f xs -> IsNS f (x ': xs)
@@ -23,7 +25,7 @@ pattern S p <- (isNS -> IsS p)
{-# COMPLETE Z, S #-}
-data SList :: [k] -> * where
+data SList :: [k] -> Type where
SNil :: SList '[]
SCons :: SList (x ': xs)
diff --git a/testsuite/tests/patsyn/should_compile/T14058.hs b/testsuite/tests/patsyn/should_compile/T14058.hs
index 7c263b8f44..b2f7eea595 100644
--- a/testsuite/tests/patsyn/should_compile/T14058.hs
+++ b/testsuite/tests/patsyn/should_compile/T14058.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T14058 where
import T14058a (Sing(..))
diff --git a/testsuite/tests/patsyn/should_compile/T14058a.hs b/testsuite/tests/patsyn/should_compile/T14058a.hs
index a7e5d97b79..5e27846d2c 100644
--- a/testsuite/tests/patsyn/should_compile/T14058a.hs
+++ b/testsuite/tests/patsyn/should_compile/T14058a.hs
@@ -2,7 +2,8 @@
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module T14058a (Sing(.., SCons)) where
diff --git a/testsuite/tests/patsyn/should_fail/T14507.hs b/testsuite/tests/patsyn/should_fail/T14507.hs
index 84166d0286..b36425ced6 100644
--- a/testsuite/tests/patsyn/should_fail/T14507.hs
+++ b/testsuite/tests/patsyn/should_fail/T14507.hs
@@ -1,4 +1,6 @@
-{-# Language PatternSynonyms, ViewPatterns, GADTs, ConstraintKinds, RankNTypes, KindSignatures, PolyKinds, ScopedTypeVariables, DataKinds, TypeInType, TypeOperators, TypeApplications, TypeFamilies, TypeFamilyDependencies #-}
+{-# Language PatternSynonyms, ViewPatterns, GADTs, ConstraintKinds, RankNTypes,
+ PolyKinds, ScopedTypeVariables, DataKinds, TypeOperators,
+ TypeApplications, TypeFamilies, TypeFamilyDependencies #-}
module T14507 where
diff --git a/testsuite/tests/patsyn/should_fail/T14507.stderr b/testsuite/tests/patsyn/should_fail/T14507.stderr
index cec70dfcdb..1279ec1e4e 100644
--- a/testsuite/tests/patsyn/should_fail/T14507.stderr
+++ b/testsuite/tests/patsyn/should_fail/T14507.stderr
@@ -1,5 +1,5 @@
-T14507.hs:18:9: error:
+T14507.hs:20:9: error:
• Iceland Jack! Iceland Jack! Stop torturing me!
Pattern-bound variable x :: TypeRep a
has a type that mentions pattern-bound coercion: co
diff --git a/testsuite/tests/patsyn/should_fail/T14552.hs b/testsuite/tests/patsyn/should_fail/T14552.hs
index 77f08575b1..a4a7493530 100644
--- a/testsuite/tests/patsyn/should_fail/T14552.hs
+++ b/testsuite/tests/patsyn/should_fail/T14552.hs
@@ -1,5 +1,5 @@
{-# Language RankNTypes, ViewPatterns, PatternSynonyms, TypeOperators, ScopedTypeVariables,
- KindSignatures, PolyKinds, DataKinds, TypeFamilies, TypeInType, GADTs #-}
+ KindSignatures, PolyKinds, DataKinds, TypeFamilies, GADTs #-}
module T14552 where
diff --git a/testsuite/tests/perf/compiler/T12227.hs b/testsuite/tests/perf/compiler/T12227.hs
index a97ff69f45..9be515f083 100644
--- a/testsuite/tests/perf/compiler/T12227.hs
+++ b/testsuite/tests/perf/compiler/T12227.hs
@@ -13,25 +13,26 @@ module Crash where
import Data.Proxy (Proxy(..))
import Data.Type.Equality (type (==))
+import Data.Kind
import GHC.Exts
import GHC.Generics
-data Dict :: Constraint -> * where
+data Dict :: Constraint -> Type where
Dict :: a => Dict a
infixr 0 -->
-type family (args :: [*]) --> (ret :: *) :: *
+type family (args :: [Type]) --> (ret :: Type) :: Type
where
'[] --> ret = ret
(arg ': args) --> ret = arg -> (args --> ret)
-type family AllArguments (func :: *) :: [*]
+type family AllArguments (func :: Type) :: [Type]
where
AllArguments (arg -> func) = arg ': AllArguments func
AllArguments ret = '[]
-type family FinalReturn (func :: *) :: *
+type family FinalReturn (func :: Type) :: Type
where
FinalReturn (arg -> func) = FinalReturn func
FinalReturn ret = ret
@@ -39,11 +40,11 @@ type family FinalReturn (func :: *) :: *
type IsFullFunction f
= (AllArguments f --> FinalReturn f) ~ f
-type family SConstructor (struct :: *) :: *
+type family SConstructor (struct :: Type) :: Type
where
SConstructor struct = GPrependFields (Rep struct ()) '[] --> struct
-type family GPrependFields (gstruct :: *) (tail :: [*]) :: [*]
+type family GPrependFields (gstruct :: Type) (tail :: [Type]) :: [Type]
where
GPrependFields (M1 i t f p) tail = GPrependFields (f p) tail
GPrependFields (K1 i c p) tail = c ': tail
@@ -60,7 +61,7 @@ instance AppendFields fields1 fields2 fields r
=> AppendFields (f ': fields1) fields2 (f ': fields) r
class Generic struct
- => GoodConstructor (struct :: *)
+ => GoodConstructor (struct :: Type)
where
goodConstructor :: Proxy struct
-> Dict ( IsFullFunction (SConstructor struct)
@@ -79,7 +80,7 @@ instance ( Generic struct
(Proxy :: Proxy struct)
{-# INLINE goodConstructor #-}
-class GoodConstructorEq (isEqual :: Bool) (ctor :: *) (struct :: *)
+class GoodConstructorEq (isEqual :: Bool) (ctor :: Type) (struct :: Type)
where
goodConstructorEq :: Proxy isEqual
-> Proxy ctor
diff --git a/testsuite/tests/perf/compiler/T12545a.hs b/testsuite/tests/perf/compiler/T12545a.hs
index 3002085499..4eceb91d02 100644
--- a/testsuite/tests/perf/compiler/T12545a.hs
+++ b/testsuite/tests/perf/compiler/T12545a.hs
@@ -19,6 +19,7 @@ module T12545a
, ElemsOf
) where
+import Data.Kind (Type)
import Data.Proxy (Proxy(..))
data ElemPath = HeadElem
@@ -55,4 +56,4 @@ type IsElem a l = ElemAt (JustElemPath (FindElem 'HeadElem a l)) a l
class IsElem t (ElemsOf a) => ElemOf a t where
-type family ElemsOf a :: [*]
+type family ElemsOf a :: [Type]
diff --git a/testsuite/tests/perf/compiler/T13035.hs b/testsuite/tests/perf/compiler/T13035.hs
index 4c001cf3e1..b8d294def5 100644
--- a/testsuite/tests/perf/compiler/T13035.hs
+++ b/testsuite/tests/perf/compiler/T13035.hs
@@ -1,7 +1,10 @@
-{-# LANGUAGE PolyKinds, DataKinds, TypeOperators, TypeFamilies, GADTs, PartialTypeSignatures #-}
+{-# LANGUAGE PolyKinds, DataKinds, TypeOperators, TypeFamilies,
+ GADTs, PartialTypeSignatures #-}
module T13035 where
+import Data.Kind
+
newtype MyAttr a b = MyAttr { _unMyAttr :: MyFun (a b) }
type MyRec a b = Rec (MyAttr a) b
@@ -26,9 +29,9 @@ type (a :: j1 -> j2) $ (b :: j1) = a b
infixr 0 $
infixr 9 =:
-data FConst (a :: *) (b :: Fields)
-data FApply (a :: * -> * -> *) b c (d :: Fields)
-data FMap (a :: * -> *) b (d :: Fields)
+data FConst (a :: Type) (b :: Fields)
+data FApply (a :: Type -> Type -> Type) b c (d :: Fields)
+data FMap (a :: Type -> Type) b (d :: Fields)
type instance MyFun (FConst a b) = a
type instance MyFun (FApply b c d a) = b (MyFun (c a)) (MyFun (d a))
@@ -63,7 +66,7 @@ data Fields = Name
| UnsaturatedFat
| ServingSize
-data Rec :: (u -> *) -> [u] -> * where
+data Rec :: (u -> Type) -> [u] -> Type where
RNil :: Rec f '[]
(:&) :: !(f r) -> !(Rec f rs) -> Rec f (r ': rs)
diff --git a/testsuite/tests/perf/compiler/T13035.stderr b/testsuite/tests/perf/compiler/T13035.stderr
index 4fbc7c7e37..3dca3d71f2 100644
--- a/testsuite/tests/perf/compiler/T13035.stderr
+++ b/testsuite/tests/perf/compiler/T13035.stderr
@@ -1,4 +1,4 @@
-T13035.hs:141:28: warning: [-Wpartial-type-signatures (in -Wdefault)]
+T13035.hs:144:28: warning: [-Wpartial-type-signatures (in -Wdefault)]
• Found type wildcard ‘_’ standing for ‘'[ 'Author] :: [Fields]’
• In the type signature: g :: MyRec RecipeFormatter _
diff --git a/testsuite/tests/perf/compiler/T9872d.hs b/testsuite/tests/perf/compiler/T9872d.hs
index 4930ffecfe..5c859eefdc 100644
--- a/testsuite/tests/perf/compiler/T9872d.hs
+++ b/testsuite/tests/perf/compiler/T9872d.hs
@@ -16,30 +16,32 @@ module T9872d where
-- families. Code in this file was extracted from encoding generated
-- automatically with Template Haskell by singletons library.
+import Data.Kind
import GHC.TypeLits
-- encoding of type-level partially applied functions
-data TyFun :: * -> * -> *
-type family Apply (f :: TyFun k1 k2 -> *) (x :: k1) :: k2
+data TyFun :: Type -> Type -> Type
+type family Apply (f :: TyFun k1 k2 -> Type) (x :: k1) :: k2
type a @@ b = Apply a b
-- some boilerplate
type family Error (a :: k) :: k1
type ErrorSym1 a = Error a
-data ErrorSym0 :: TyFun a b -> *
+data ErrorSym0 :: TyFun a b -> Type
type instance Apply ErrorSym0 e = Error e
data Proxy a = Proxy
-data KProxy (a :: *) = KProxy
+data KProxy (a :: Type) = KProxy
type KindOf (a :: k) = ('KProxy :: KProxy k)
-- type-level addition
type (:+$$$) (t1 :: Nat) (t2 :: Nat) = t1 + t2
data (:+$$) (l :: Nat) (tf :: TyFun Nat Nat)
- = forall a. (KindOf (Apply ((:+$$) l) a)) ~ (KindOf ((:+$$$) l a)) => (:+$$###)
+ = forall a. (KindOf (Apply ((:+$$) l) a)) ~ (KindOf ((:+$$$) l a)) =>
+ (:+$$###)
type instance Apply ((:+$$) l1) l2 = (:+$$$) l1 l2
-data (:+$) (l :: TyFun Nat (TyFun Nat Nat -> *))
+data (:+$) (l :: TyFun Nat (TyFun Nat Nat -> Type))
= forall a. (KindOf (Apply (:+$) a)) ~ (KindOf ((:+$$) a)) => (:+$###)
type instance Apply (:+$) l = (:+$$) l
@@ -49,10 +51,11 @@ type NilSym0 = '[]
type ConsSym2 (x :: a) (xs :: [a]) = x ': xs
data ConsSym1 (x :: a) (l_a3t6 :: TyFun [a] [a])
- = forall b. (KindOf (Apply (ConsSym1 x) b)) ~ (KindOf (ConsSym2 x b)) => (:$$###)
+ = forall b. (KindOf (Apply (ConsSym1 x) b)) ~ (KindOf (ConsSym2 x b)) =>
+ (:$$###)
type instance Apply (ConsSym1 x) xs = ConsSym2 x xs
-data ConsSym0 (l :: TyFun a (TyFun [a] [a] -> *))
+data ConsSym0 (l :: TyFun a (TyFun [a] [a] -> Type))
= forall a. (KindOf (Apply ConsSym0 a)) ~ (KindOf (ConsSym1 a)) => (:$###)
type instance Apply ConsSym0 l = ConsSym1 l
@@ -63,22 +66,41 @@ data Let_1627403919Scrutinee_1627403894Sym3 l_a3Dx
l_a3Dy
l_a3Dz
l_a3Dw
- = forall arg_a3DA. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym3 l_a3Dx l_a3Dy l_a3Dz) arg_a3DA)) ~ (KindOf (Let_1627403919Scrutinee_1627403894Sym4 l_a3Dx l_a3Dy l_a3Dz arg_a3DA)) =>
+ = forall arg_a3DA. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym3
+ l_a3Dx l_a3Dy l_a3Dz) arg_a3DA)) ~
+ (KindOf (Let_1627403919Scrutinee_1627403894Sym4
+ l_a3Dx l_a3Dy l_a3Dz arg_a3DA)) =>
Let_1627403919Scrutinee_1627403894Sym3KindInference
-type instance Apply (Let_1627403919Scrutinee_1627403894Sym3 l_a3Dx l_a3Dy l_a3Dz) l_a3Dw = Let_1627403919Scrutinee_1627403894Sym4 l_a3Dx l_a3Dy l_a3Dz l_a3Dw
+type instance Apply (Let_1627403919Scrutinee_1627403894Sym3
+ l_a3Dx l_a3Dy l_a3Dz) l_a3Dw =
+ Let_1627403919Scrutinee_1627403894Sym4 l_a3Dx l_a3Dy l_a3Dz l_a3Dw
data Let_1627403919Scrutinee_1627403894Sym2 l_a3Dt l_a3Du l_a3Ds
- = forall arg_a3Dv. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym2 l_a3Dt l_a3Du) arg_a3Dv)) ~ (KindOf (Let_1627403919Scrutinee_1627403894Sym3 l_a3Dt l_a3Du arg_a3Dv)) =>
+ = forall arg_a3Dv. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym2
+ l_a3Dt l_a3Du) arg_a3Dv)) ~
+ (KindOf (Let_1627403919Scrutinee_1627403894Sym3
+ l_a3Dt l_a3Du arg_a3Dv)) =>
Let_1627403919Scrutinee_1627403894Sym2KindInference
-type instance Apply (Let_1627403919Scrutinee_1627403894Sym2 l_a3Dt l_a3Du) l_a3Ds = Let_1627403919Scrutinee_1627403894Sym3 l_a3Dt l_a3Du l_a3Ds
+type instance Apply
+ (Let_1627403919Scrutinee_1627403894Sym2 l_a3Dt l_a3Du) l_a3Ds =
+ Let_1627403919Scrutinee_1627403894Sym3 l_a3Dt l_a3Du l_a3Ds
data Let_1627403919Scrutinee_1627403894Sym1 l_a3Dq l_a3Dp
- = forall arg_a3Dr. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym1 l_a3Dq) arg_a3Dr)) ~ (KindOf (Let_1627403919Scrutinee_1627403894Sym2 l_a3Dq arg_a3Dr)) =>
+ = forall arg_a3Dr. (KindOf (Apply (Let_1627403919Scrutinee_1627403894Sym1
+ l_a3Dq) arg_a3Dr)) ~
+ (KindOf (Let_1627403919Scrutinee_1627403894Sym2
+ l_a3Dq arg_a3Dr)) =>
Let_1627403919Scrutinee_1627403894Sym1KindInference
-type instance Apply (Let_1627403919Scrutinee_1627403894Sym1 l_a3Dq) l_a3Dp = Let_1627403919Scrutinee_1627403894Sym2 l_a3Dq l_a3Dp
+type instance Apply (Let_1627403919Scrutinee_1627403894Sym1 l_a3Dq)
+ l_a3Dp
+ = Let_1627403919Scrutinee_1627403894Sym2 l_a3Dq l_a3Dp
data Let_1627403919Scrutinee_1627403894Sym0 l_a3Dn
- = forall arg_a3Do. (KindOf (Apply Let_1627403919Scrutinee_1627403894Sym0 arg_a3Do)) ~ (KindOf (Let_1627403919Scrutinee_1627403894Sym1 arg_a3Do)) =>
+ = forall arg_a3Do. (KindOf (Apply Let_1627403919Scrutinee_1627403894Sym0
+ arg_a3Do)) ~
+ (KindOf (Let_1627403919Scrutinee_1627403894Sym1
+ arg_a3Do)) =>
Let_1627403919Scrutinee_1627403894Sym0KindInference
-type instance Apply Let_1627403919Scrutinee_1627403894Sym0 l_a3Dn = Let_1627403919Scrutinee_1627403894Sym1 l_a3Dn
+type instance Apply Let_1627403919Scrutinee_1627403894Sym0 l_a3Dn
+ = Let_1627403919Scrutinee_1627403894Sym1 l_a3Dn
type Let_1627403919Scrutinee_1627403894 f_a3Dd
q0_a3De
x_a3Df
@@ -90,60 +112,154 @@ type family Case f q0 x xs t :: [k] where
Case f q0 x xs (q ': qs) = ConsSym0 @@ (f @@ x @@ q) @@ (ConsSym0 @@ q @@ qs)
-- type-level scanr
-type ScanrSym3 (t1 :: TyFun a (TyFun b b -> *) -> *) (t2 :: b) (t3 :: [a]) =
+type ScanrSym3 (t1 :: TyFun a (TyFun b b -> Type) -> Type)
+ (t2 :: b)
+ (t3 :: [a]) =
Scanr t1 t2 t3
-data ScanrSym2 (l1 :: TyFun a (TyFun b b -> *) -> *) (l2 :: b) (l3 :: TyFun [a] [b])
- = forall a. (KindOf (Apply (ScanrSym2 l1 l2) a)) ~ (KindOf (ScanrSym3 l1 l2 a)) =>
+data ScanrSym2 (l1 :: TyFun a (TyFun b b -> Type) -> Type)
+ (l2 :: b)
+ (l3 :: TyFun [a] [b])
+ = forall a. (KindOf (Apply (ScanrSym2 l1 l2) a)) ~
+ (KindOf (ScanrSym3 l1 l2 a)) =>
ScanrSym2KindInference
type instance Apply (ScanrSym2 l1 l2) l3 = ScanrSym3 l1 l2 l3
-data ScanrSym1 (l_a3D0 :: TyFun a_a3CJ (TyFun b_a3CK b_a3CK -> *) -> *)
+data ScanrSym1 (l_a3D0 :: TyFun a_a3CJ (TyFun b_a3CK b_a3CK -> Type) -> Type)
(l_a3CZ :: TyFun b_a3CK (TyFun ([a_a3CJ]) ([b_a3CK])
- -> *))
- = forall arg_a3D1. (KindOf (Apply (ScanrSym1 l_a3D0) arg_a3D1)) ~ (KindOf (ScanrSym2 l_a3D0 arg_a3D1)) =>
+ -> Type))
+ = forall arg_a3D1. (KindOf (Apply (ScanrSym1 l_a3D0) arg_a3D1)) ~
+ (KindOf (ScanrSym2 l_a3D0 arg_a3D1)) =>
ScanrSym1KindInference
type instance Apply (ScanrSym1 l_a3D0) l_a3CZ = ScanrSym2 l_a3D0 l_a3CZ
-data ScanrSym0 (l :: TyFun (TyFun a (TyFun b b -> *) -> *)
- (TyFun b (TyFun [a] [b] -> *) -> *))
+data ScanrSym0 (l :: TyFun (TyFun a (TyFun b b -> Type) -> Type)
+ (TyFun b (TyFun [a] [b] -> Type) -> Type))
= forall a. (KindOf (Apply ScanrSym0 a)) ~ (KindOf (ScanrSym1 a)) =>
ScanrSym0KindInference
type instance Apply ScanrSym0 l1 = ScanrSym1 l1
-type family Scanr (a_a3D6 :: TyFun a_a3CJ (TyFun b_a3CK b_a3CK -> *) -> *)
+type family Scanr (a_a3D6 :: TyFun a_a3CJ (TyFun b_a3CK b_a3CK -> Type) -> Type)
(a_a3D7 :: b_a3CK)
(a_a3D8 :: [a_a3CJ]) :: [b_a3CK] where
Scanr _z_1627403911_a3Db q0_a3Dc '[] = Apply (Apply ConsSym0 q0_a3Dc) NilSym0
- Scanr f_a3Dd q0_a3De (x_a3Df ': xs_a3Dg) = Case f_a3Dd q0_a3De x_a3Df xs_a3Dg (Let_1627403919Scrutinee_1627403894Sym4 f_a3Dd q0_a3De x_a3Df xs_a3Dg)
+ Scanr f_a3Dd q0_a3De (x_a3Df ': xs_a3Dg) =
+ Case f_a3Dd q0_a3De x_a3Df xs_a3Dg (Let_1627403919Scrutinee_1627403894Sym4
+ f_a3Dd q0_a3De x_a3Df xs_a3Dg)
{-
-foo32 :: Proxy ('[528,527,525,522,518,513,507,500,492,483,473,462,450,437,423,408,392,375,357,338,318,297,275,252,228,203,177,150,122,93,63,32,0])
+foo32 :: Proxy ('[528,527,525,522,518,513,507,500,492,483,473,462,450,437,423,
+ 408,392,375,357,338,318,297,275,252,228,203,177,150,122,93,
+ 63,32,0])
foo32 = Proxy
-bar32 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32])
+bar32 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,
+ 15,16,17,18,19,20,21,22,23,24,25,
+ 26,27,28,29,30,31,32])
bar32 = foo32
-}
{-
-foo64 :: Proxy ('[2080,2079,2077,2074,2070,2065,2059,2052,2044,2035,2025,2014,2002,1989,1975,1960,1944,1927,1909,1890,1870,1849,1827,1804,1780,1755,1729,1702,1674,1645,1615,1584,1552,1519,1485,1450,1414,1377,1339,1300,1260,1219,1177,1134,1090,1045,999,952,904,855,805,754,702,649,595,540,484,427,369,310,250,189,127,64,0])
+foo64 :: Proxy ('[2080,2079,2077,2074,2070,2065,2059,2052,2044,2035,2025,2014,
+ 2002,1989,1975,1960,1944,1927,1909,1890,1870,1849,1827,1804,
+ 1780,1755,1729,1702,1674,1645,1615,1584,1552,1519,1485,1450,
+ 1414,1377,1339,1300,1260,1219,1177,1134,1090,1045,999,952,904,
+ 855,805,754,702,649,595,540,484,427,369,310,250,189,127,64,0])
foo64 = Proxy
-bar64 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64])
+bar64 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,
+ 15,16,17,18,19,20,21,22,23,24,25,
+ 26,27,28,29,30,31,32,33,34,35,36,
+ 37,38,39,40,41,42,43,44,45,46,47,
+ 48,49,50,51,52,53,54,55,56,57,58,
+ 59,60,61,62,63,64])
bar64 = foo64
-foo128 :: Proxy ('[8256,8255,8253,8250,8246,8241,8235,8228,8220,8211,8201,8190,8178,8165,8151,8136,8120,8103,8085,8066,8046,8025,8003,7980,7956,7931,7905,7878,7850,7821,7791,7760,7728,7695,7661,7626,7590,7553,7515,7476,7436,7395,7353,7310,7266,7221,7175,7128,7080,7031,6981,6930,6878,6825,6771,6716,6660,6603,6545,6486,6426,6365,6303,6240,6176,6111,6045,5978,5910,5841,5771,5700,5628,5555,5481,5406,5330,5253,5175,5096,5016,4935,4853,4770,4686,4601,4515,4428,4340,4251,4161,4070,3978,3885,3791,3696,3600,3503,3405,3306,3206,3105,3003,2900,2796,2691,2585,2478,2370,2261,2151,2040,1928,1815,1701,1586,1470,1353,1235,1116,996,875,753,630,506,381,255,128,0])
+foo128 :: Proxy ('[8256,8255,8253,8250,8246,8241,8235,8228,8220,8211,8201,8190,
+ 8178,8165,8151,8136,8120,8103,8085,8066,8046,8025,8003,7980,
+ 7956,7931,7905,7878,7850,7821,7791,7760,7728,7695,7661,7626,
+ 7590,7553,7515,7476,7436,7395,7353,7310,7266,7221,7175,7128,
+ 7080,7031,6981,6930,6878,6825,6771,6716,6660,6603,6545,6486,
+ 6426,6365,6303,6240,6176,6111,6045,5978,5910,5841,5771,5700,
+ 5628,5555,5481,5406,5330,5253,5175,5096,5016,4935,4853,4770,
+ 4686,4601,4515,4428,4340,4251,4161,4070,3978,3885,3791,3696,
+ 3600,3503,3405,3306,3206,3105,3003,2900,2796,2691,2585,2478,
+ 2370,2261,2151,2040,1928,1815,1701,1586,1470,1353,1235,1116,
+ 996,875,753,630,506,381,255,128,0])
foo128 = Proxy
-bar128 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128])
+bar128 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,
+ 15,16,17,18,19,20,21,22,23,24,25,
+ 26,27,28,29,30,31,32,33,34,35,36,
+ 37,38,39,40,41,42,43,44,45,46,47,
+ 48,49,50,51,52,53,54,55,56,57,58,
+ 59,60,61,62,63,64,65,66,67,68,69,
+ 70,71,72,73,74,75,76,77,78,79,80,
+ 81,82,83,84,85,86,87,88,89,90,91,
+ 92,93,94,95,96,97,98,99,100,101,
+ 102,103,104,105,106,107,108,109,
+ 110,111,112,113,114,115,116,117,
+ 118,119,120,121,122,123,124,125,
+ 126,127,128])
bar128 = foo128
-}
-foo256 :: Proxy ('[32896,32895,32893,32890,32886,32881,32875,32868,32860,32851,32841,32830,32818,32805,32791,32776,32760,32743,32725,32706,32686,32665,32643,32620,32596,32571,32545,32518,32490,32461,32431,32400,32368,32335,32301,32266,32230,32193,32155,32116,32076,32035,31993,31950,31906,31861,31815,31768,31720,31671,31621,31570,31518,31465,31411,31356,31300,31243,31185,31126,31066,31005,30943,30880,30816,30751,30685,30618,30550,30481,30411,30340,30268,30195,30121,30046,29970,29893,29815,29736,29656,29575,29493,29410,29326,29241,29155,29068,28980,28891,28801,28710,28618,28525,28431,28336,28240,28143,28045,27946,27846,27745,27643,27540,27436,27331,27225,27118,27010,26901,26791,26680,26568,26455,26341,26226,26110,25993,25875,25756,25636,25515,25393,25270,25146,25021,24895,24768,24640,24511,24381,24250,24118,23985,23851,23716,23580,23443,23305,23166,23026,22885,22743,22600,22456,22311,22165,22018,21870,21721,21571,21420,21268,21115,20961,20806,20650,20493,20335,20176,20016,19855,19693,19530,19366,19201,19035,18868,18700,18531,18361,18190,18018,17845,17671,17496,17320,17143,16965,16786,16606,16425,16243,16060,15876,15691,15505,15318,15130,14941,14751,14560,14368,14175,13981,13786,13590,13393,13195,12996,12796,12595,12393,12190,11986,11781,11575,11368,11160,10951,10741,10530,10318,10105,9891,9676,9460,9243,9025,8806,8586,8365,8143,7920,7696,7471,7245,7018,6790,6561,6331,6100,5868,5635,5401,5166,4930,4693,4455,4216,3976,3735,3493,3250,3006,2761,2515,2268,2020,1771,1521,1270,1018,765,511,256,0])
+foo256 :: Proxy ('[32896,32895,32893,32890,32886,32881,32875,32868,32860,32851,
+ 32841,32830,32818,32805,32791,32776,32760,32743,32725,32706,
+ 32686,32665,32643,32620,32596,32571,32545,32518,32490,32461,
+ 32431,32400,32368,32335,32301,32266,32230,32193,32155,32116,
+ 32076,32035,31993,31950,31906,31861,31815,31768,31720,31671,
+ 31621,31570,31518,31465,31411,31356,31300,31243,31185,31126,
+ 31066,31005,30943,30880,30816,30751,30685,30618,30550,30481,
+ 30411,30340,30268,30195,30121,30046,29970,29893,29815,29736,
+ 29656,29575,29493,29410,29326,29241,29155,29068,28980,28891,
+ 28801,28710,28618,28525,28431,28336,28240,28143,28045,27946,
+ 27846,27745,27643,27540,27436,27331,27225,27118,27010,26901,
+ 26791,26680,26568,26455,26341,26226,26110,25993,25875,25756,
+ 25636,25515,25393,25270,25146,25021,24895,24768,24640,24511,
+ 24381,24250,24118,23985,23851,23716,23580,23443,23305,23166,
+ 23026,22885,22743,22600,22456,22311,22165,22018,21870,21721,
+ 21571,21420,21268,21115,20961,20806,20650,20493,20335,20176,
+ 20016,19855,19693,19530,19366,19201,19035,18868,18700,18531,
+ 18361,18190,18018,17845,17671,17496,17320,17143,16965,16786,
+ 16606,16425,16243,16060,15876,15691,15505,15318,15130,14941,
+ 14751,14560,14368,14175,13981,13786,13590,13393,13195,12996,
+ 12796,12595,12393,12190,11986,11781,11575,11368,11160,10951,
+ 10741,10530,10318,10105,9891,9676,9460,9243,9025,8806,
+ 8586,8365,8143,7920,7696,7471,7245,7018,6790,6561,6331,6100,
+ 5868,5635,5401,5166,4930,4693,4455,4216,3976,3735,3493,3250,
+ 3006,2761,2515,2268,2020,1771,1521,1270,1018,765,511,256,0])
foo256 = Proxy
-bar256 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256])
+bar256 :: Proxy (ScanrSym0 @@ (:+$) @@ 0 @@ '[1,2,3,4,5,6,7,8,9,10,11,12,13,14,
+ 15,16,17,18,19,20,21,22,23,24,25,
+ 26,27,28,29,30,31,32,33,34,35,36,
+ 37,38,39,40,41,42,43,44,45,46,47,
+ 48,49,50,51,52,53,54,55,56,57,58,
+ 59,60,61,62,63,64,65,66,67,68,69,
+ 70,71,72,73,74,75,76,77,78,79,80,
+ 81,82,83,84,85,86,87,88,89,90,91,
+ 92,93,94,95,96,97,98,99,100,101,
+ 102,103,104,105,106,107,108,109,
+ 110,111,112,113,114,115,116,117,
+ 118,119,120,121,122,123,124,125,
+ 126,127,128,129,130,131,132,133,
+ 134,135,136,137,138,139,140,141,
+ 142,143,144,145,146,147,148,149,
+ 150,151,152,153,154,155,156,157,
+ 158,159,160,161,162,163,164,165,
+ 166,167,168,169,170,171,172,173,
+ 174,175,176,177,178,179,180,181,
+ 182,183,184,185,186,187,188,189,
+ 190,191,192,193,194,195,196,197,
+ 198,199,200,201,202,203,204,205,
+ 206,207,208,209,210,211,212,213,
+ 214,215,216,217,218,219,220,221,
+ 222,223,224,225,226,227,228,229,
+ 230,231,232,233,234,235,236,237,
+ 238,239,240,241,242,243,244,245,
+ 246,247,248,249,250,251,252,253,
+ 254,255,256])
bar256 = foo256
-
diff --git a/testsuite/tests/pmcheck/complete_sigs/T14253.hs b/testsuite/tests/pmcheck/complete_sigs/T14253.hs
index 88cc4f88b3..bb56d437bf 100644
--- a/testsuite/tests/pmcheck/complete_sigs/T14253.hs
+++ b/testsuite/tests/pmcheck/complete_sigs/T14253.hs
@@ -2,7 +2,7 @@
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T14253 where
diff --git a/testsuite/tests/pmcheck/should_compile/T14086.hs b/testsuite/tests/pmcheck/should_compile/T14086.hs
index de91229c24..5e69ce6a33 100644
--- a/testsuite/tests/pmcheck/should_compile/T14086.hs
+++ b/testsuite/tests/pmcheck/should_compile/T14086.hs
@@ -1,4 +1,4 @@
-{-# language TypeInType, EmptyCase #-}
+{-# language EmptyCase #-}
module T14086 where
import Data.Kind
diff --git a/testsuite/tests/pmcheck/should_compile/T3927b.hs b/testsuite/tests/pmcheck/should_compile/T3927b.hs
index 89b81534c7..d4cfa1e275 100644
--- a/testsuite/tests/pmcheck/should_compile/T3927b.hs
+++ b/testsuite/tests/pmcheck/should_compile/T3927b.hs
@@ -11,8 +11,8 @@
module T3927b where
+import Data.Kind (Type, Constraint)
import Data.Proxy
-import GHC.Exts
data Message
@@ -30,16 +30,16 @@ type family Implements (t :: SocketType) :: [SocketOperation] where
Implements Push = '[Write]
Implements Pull = '[ 'Read]
-data SockOp :: SocketType -> SocketOperation -> * where
+data SockOp :: SocketType -> SocketOperation -> Type where
SRead :: SockOp sock 'Read
SWrite :: SockOp sock Write
-data Socket :: SocketType -> * where
+data Socket :: SocketType -> Type where
Socket :: proxy sock
-> (forall op . Restrict op (Implements sock) => SockOp sock op -> Operation op)
-> Socket sock
-type family Operation (op :: SocketOperation) :: * where
+type family Operation (op :: SocketOperation) :: Type where
Operation 'Read = IO Message
Operation Write = Message -> IO ()
diff --git a/testsuite/tests/polykinds/MonoidsTF.hs b/testsuite/tests/polykinds/MonoidsTF.hs
index 365c3766bc..8e3b378046 100644
--- a/testsuite/tests/polykinds/MonoidsTF.hs
+++ b/testsuite/tests/polykinds/MonoidsTF.hs
@@ -12,13 +12,15 @@
{-# LANGUAGE TypeFamilies #-}
module Main where
+
+import Data.Kind
import Control.Monad (Monad(..), join, ap, liftM)
import Data.Monoid (Monoid(..))
import Data.Semigroup (Semigroup(..))
-- First we define the type class Monoidy:
-class Monoidy (to :: k0 -> k1 -> *) (m :: k1) where
+class Monoidy (to :: k0 -> k1 -> Type) (m :: k1) where
type MComp to m :: k1 -> k1 -> k0
type MId to m :: k0
munit :: MId to m `to` m
diff --git a/testsuite/tests/polykinds/PolyKinds10.hs b/testsuite/tests/polykinds/PolyKinds10.hs
index b023fd092f..70c5d70606 100644
--- a/testsuite/tests/polykinds/PolyKinds10.hs
+++ b/testsuite/tests/polykinds/PolyKinds10.hs
@@ -9,6 +9,7 @@
module Main where
+import Data.Kind
-- Type-level peano naturals (value-level too, but we don't use those)
data Nat = Ze | Su Nat
@@ -18,15 +19,15 @@ type T1 = Su T0
type T2 = Su T1
-- (!) at the type level
-type family El (n :: Nat) (l :: [*]) :: *
+type family El (n :: Nat) (l :: [Type]) :: Type
type instance El Ze (h ': t) = h
type instance El (Su n) (h ': t) = El n t
{-
-- The following might be useful, but are not used at the moment
-- ($) at the type level (well, not quite ($), in fact...)
-class Apply (fs :: [*]) (es :: [*]) where
- type ApplyT (fs :: [*]) (es :: [*]) :: [*]
+class Apply (fs :: [Type]) (es :: [Type]) where
+ type ApplyT (fs :: [Type]) (es :: [Type]) :: [Type]
apply :: ListV fs -> ListV es -> ListV (ApplyT fs es)
instance Apply '[] '[] where
@@ -39,11 +40,11 @@ instance (Apply fs es) => Apply ((e1 -> e2) ': fs) (e1 ': es) where
-}
-- Value mirror for the list kind
-data ListV :: [*] -> * where
+data ListV :: [Type] -> Type where
NilV :: ListV '[]
ConsV :: a -> ListV t -> ListV (a ': t)
-data ListV2 :: [[*]] -> * where
+data ListV2 :: [[Type]] -> Type where
NilV2 :: ListV2 '[]
ConsV2 :: ListV a -> ListV2 t -> ListV2 (a ': t)
@@ -53,26 +54,26 @@ listv1 = ConsV 3 NilV
listv2 :: ListV2 ((Int ': '[]) ': '[])
listv2 = ConsV2 listv1 NilV2
---data ListVX :: Maybe -> * where
+--data ListVX :: Maybe -> Type where
-data TripleV :: (*, * -> *, *) -> * where
+data TripleV :: (Type, Type -> Type, Type) -> Type where
TripleV :: a -> c -> TripleV '(a, [], c)
-- Value mirror for the Nat kind
-data NatV :: Nat -> * where
+data NatV :: Nat -> Type where
ZeW :: NatV Ze
SuW :: NatV n -> NatV (Su n)
-- Generic universe
data MultiP x = UNIT
- | KK x -- wish I could just write * instead of x
+ | KK x -- wish I could just write Type instead of x
| SUM (MultiP x) (MultiP x)
| PROD (MultiP x) (MultiP x)
| PAR Nat
| REC
-- Universe interpretation
-data Interprt :: MultiP * -> [*] -> * -> * where
+data Interprt :: MultiP Type -> [Type] -> Type -> Type where
Unit :: Interprt UNIT lp r
K :: x -> Interprt (KK x) lp r
L :: Interprt a lp r -> Interprt (SUM a b) lp r
@@ -83,13 +84,13 @@ data Interprt :: MultiP * -> [*] -> * -> * where
-- Embedding values into the universe
class Generic a where
- type Rep a :: MultiP *
- type Es a :: [*]
+ type Rep a :: MultiP Type
+ type Es a :: [Type]
from :: a -> Interprt (Rep a) (Es a) a
to :: Interprt (Rep a) (Es a) a -> a
-- Parameter map over the universe
-class PMap (rep :: MultiP *) where
+class PMap (rep :: MultiP Type) where
pmap :: (forall n. NatV n -> El n lp1 -> El n lp2)
-> (r -> s) -> Interprt rep lp1 r -> Interprt rep lp2 s
diff --git a/testsuite/tests/polykinds/SigTvKinds3.hs b/testsuite/tests/polykinds/SigTvKinds3.hs
index b27be2e9c6..7c9dace054 100644
--- a/testsuite/tests/polykinds/SigTvKinds3.hs
+++ b/testsuite/tests/polykinds/SigTvKinds3.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE GADTs, ExplicitForAll, TypeInType #-}
+{-# LANGUAGE GADTs, ExplicitForAll, PolyKinds #-}
module SigTvKinds3 where
diff --git a/testsuite/tests/polykinds/T10134a.hs b/testsuite/tests/polykinds/T10134a.hs
index 0d84d56b5e..9412705e4c 100644
--- a/testsuite/tests/polykinds/T10134a.hs
+++ b/testsuite/tests/polykinds/T10134a.hs
@@ -4,8 +4,9 @@
{-# LANGUAGE TypeOperators #-}
module T10134a where
+import Data.Kind (Type)
import GHC.TypeLits
-data Vec :: Nat -> * -> * where
+data Vec :: Nat -> Type -> Type where
Nil :: Vec 0 a
(:>) :: a -> Vec n a -> Vec (n + 1) a
diff --git a/testsuite/tests/polykinds/T10934.hs b/testsuite/tests/polykinds/T10934.hs
index fb7a538ebd..35ea20f225 100644
--- a/testsuite/tests/polykinds/T10934.hs
+++ b/testsuite/tests/polykinds/T10934.hs
@@ -11,6 +11,8 @@
module KeyValue where
+import Data.Kind
+
data AccValidation err a = AccFailure err | AccSuccess a
data KeyValueError = MissingValue
@@ -23,11 +25,11 @@ missing = rpure missingField
missingField :: forall x. (WithKeyValueError :. f) x
missingField = Compose $ AccFailure [MissingValue]
-data Rec :: (u -> *) -> [u] -> * where
+data Rec :: (u -> Type) -> [u] -> Type where
RNil :: Rec f '[]
(:&) :: !(f r) -> !(Rec f rs) -> Rec f (r ': rs)
-newtype Compose (f :: l -> *) (g :: k -> l) (x :: k)
+newtype Compose (f :: l -> Type) (g :: k -> l) (x :: k)
= Compose { getCompose :: f (g x) }
type (:.) f g = Compose f g
diff --git a/testsuite/tests/polykinds/T11142.hs b/testsuite/tests/polykinds/T11142.hs
index 58eb3b6c94..a96566a371 100644
--- a/testsuite/tests/polykinds/T11142.hs
+++ b/testsuite/tests/polykinds/T11142.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, RankNTypes #-}
+{-# LANGUAGE PolyKinds, RankNTypes #-}
module T11142 where
diff --git a/testsuite/tests/polykinds/T11399.hs b/testsuite/tests/polykinds/T11399.hs
index bc9e60d7f3..56f3c11ef7 100644
--- a/testsuite/tests/polykinds/T11399.hs
+++ b/testsuite/tests/polykinds/T11399.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleInstances, TypeInType #-}
+{-# LANGUAGE FlexibleInstances, PolyKinds #-}
module T11399 where
import Data.Kind
diff --git a/testsuite/tests/polykinds/T11480b.hs b/testsuite/tests/polykinds/T11480b.hs
index 12802e8de3..2684c6de4e 100644
--- a/testsuite/tests/polykinds/T11480b.hs
+++ b/testsuite/tests/polykinds/T11480b.hs
@@ -21,25 +21,25 @@
module T11480b where
-import GHC.Types (Constraint)
+import Data.Kind (Constraint, Type)
import Data.Type.Equality as Equality
import Data.Type.Coercion as Coercion
import qualified Prelude
import Prelude (Either(..))
-newtype Y (p :: i -> j -> *) (a :: j) (b :: i) = Y { getY :: p b a }
+newtype Y (p :: i -> j -> Type) (a :: j) (b :: i) = Y { getY :: p b a }
-type family Op (p :: i -> j -> *) :: j -> i -> * where
+type family Op (p :: i -> j -> Type) :: j -> i -> Type where
Op (Y p) = p
Op p = Y p
-class Vacuous (p :: i -> i -> *) (a :: i)
+class Vacuous (p :: i -> i -> Type) (a :: i)
instance Vacuous p a
data Dict (p :: Constraint) where
Dict :: p => Dict p
-class Functor (Op p) (Nat p (->)) p => Category (p :: i -> i -> *) where
+class Functor (Op p) (Nat p (->)) p => Category (p :: i -> i -> Type) where
type Ob p :: i -> Constraint
type Ob p = Vacuous p
@@ -62,11 +62,16 @@ class Functor (Op p) (Nat p (->)) p => Category (p :: i -> i -> *) where
default unop :: Op p ~ Y p => Op p b a -> p a b
unop = getY
-class (Category p, Category q) => Functor (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j) | f -> p q where
+class (Category p, Category q) =>
+ Functor (p :: i -> i -> Type)
+ (q :: j -> j -> Type)
+ (f :: i -> j) | f -> p q where
fmap :: p a b -> q (f a) (f b)
-data Nat (p :: i -> i -> *) (q :: j -> j -> *) (f :: i -> j) (g :: i -> j) where
- Nat :: (Functor p q f, Functor p q g) => { runNat :: forall a. Ob p a => q (f a) (g a) } -> Nat p q f g
+data Nat (p :: i -> i -> Type)
+ (q :: j -> j -> Type) (f :: i -> j) (g :: i -> j) where
+ Nat :: (Functor p q f, Functor p q g) =>
+ { runNat :: forall a. Ob p a => q (f a) (g a) } -> Nat p q f g
instance (Category p, Category q) => Category (Nat p q) where
type Ob (Nat p q) = Functor p q
@@ -80,7 +85,8 @@ instance (Category p, Category q) => Category (Nat p q) where
ob :: forall p q f a. Functor p q f => Ob p a :- Ob q (f a)
ob = Sub (case source (fmap (id :: p a a) :: q (f a) (f a)) of Dict -> Dict)
-instance (Category p, Category q) => Functor (Y (Nat p q)) (Nat (Nat p q) (->)) (Nat p q) where
+instance (Category p, Category q) =>
+ Functor (Y (Nat p q)) (Nat (Nat p q) (->)) (Nat p q) where
fmap (Y f) = Nat (. f)
instance (Category p, Category q) => Functor (Nat p q) (->) (Nat p q f) where
diff --git a/testsuite/tests/polykinds/T11520.hs b/testsuite/tests/polykinds/T11520.hs
index fa5a3bf4a4..eef999d4ba 100644
--- a/testsuite/tests/polykinds/T11520.hs
+++ b/testsuite/tests/polykinds/T11520.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE RankNTypes, PolyKinds, TypeInType, GADTs, UndecidableSuperClasses #-}
+{-# LANGUAGE RankNTypes, PolyKinds, GADTs, UndecidableSuperClasses #-}
module T11520 where
diff --git a/testsuite/tests/polykinds/T11523.hs b/testsuite/tests/polykinds/T11523.hs
index 0313b0c46e..aff0f9ed90 100644
--- a/testsuite/tests/polykinds/T11523.hs
+++ b/testsuite/tests/polykinds/T11523.hs
@@ -15,7 +15,6 @@
{-# language FunctionalDependencies #-}
{-# language UndecidableSuperClasses #-}
{-# language UndecidableInstances #-}
-{-# language TypeInType #-}
module T11523 where
diff --git a/testsuite/tests/polykinds/T11554.hs b/testsuite/tests/polykinds/T11554.hs
index e7a35bd9d8..bca6b8277c 100644
--- a/testsuite/tests/polykinds/T11554.hs
+++ b/testsuite/tests/polykinds/T11554.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE GADTs, TypeInType, RankNTypes #-}
+{-# LANGUAGE GADTs, PolyKinds, RankNTypes #-}
module T11554 where
diff --git a/testsuite/tests/polykinds/T11616.hs b/testsuite/tests/polykinds/T11616.hs
index 378032b7ed..16a62b33b2 100644
--- a/testsuite/tests/polykinds/T11616.hs
+++ b/testsuite/tests/polykinds/T11616.hs
@@ -1,6 +1,6 @@
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE TypeApplications #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T11616 where
class Whoami a where
diff --git a/testsuite/tests/polykinds/T11640.hs b/testsuite/tests/polykinds/T11640.hs
index bbb4a53bfc..ade4cbc79d 100644
--- a/testsuite/tests/polykinds/T11640.hs
+++ b/testsuite/tests/polykinds/T11640.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE GADTs, RankNTypes, TypeInType #-}
+{-# LANGUAGE GADTs, RankNTypes, PolyKinds #-}
module T11640 where
diff --git a/testsuite/tests/polykinds/T11648.hs b/testsuite/tests/polykinds/T11648.hs
index 15fcfa4e05..b8b70e8733 100644
--- a/testsuite/tests/polykinds/T11648.hs
+++ b/testsuite/tests/polykinds/T11648.hs
@@ -3,6 +3,8 @@
module T11648 where
-class Monoidy (to :: k0 -> k1 -> *) (m :: k1) where
+import Data.Kind
+
+class Monoidy (to :: k0 -> k1 -> Type) (m :: k1) where
type MComp to m :: k1 -> k1 -> k0
mjoin :: MComp to m m m `to` m
diff --git a/testsuite/tests/polykinds/T11648b.hs b/testsuite/tests/polykinds/T11648b.hs
index 2ab27a6166..d50854d237 100644
--- a/testsuite/tests/polykinds/T11648b.hs
+++ b/testsuite/tests/polykinds/T11648b.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T11648b where
diff --git a/testsuite/tests/polykinds/T11821a.hs b/testsuite/tests/polykinds/T11821a.hs
index da96fe2c56..c5de2bbe53 100644
--- a/testsuite/tests/polykinds/T11821a.hs
+++ b/testsuite/tests/polykinds/T11821a.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE GADTs, TypeInType, ConstraintKinds #-}
+{-# LANGUAGE GADTs, DataKinds, PolyKinds, ConstraintKinds #-}
module T11821a where
import Data.Proxy
type SameKind (a :: k1) (b :: k2) = ('Proxy :: Proxy k1) ~ ('Proxy :: Proxy k2)
diff --git a/testsuite/tests/polykinds/T12055.hs b/testsuite/tests/polykinds/T12055.hs
index 3ffc221b7b..cabc2dfbba 100644
--- a/testsuite/tests/polykinds/T12055.hs
+++ b/testsuite/tests/polykinds/T12055.hs
@@ -3,9 +3,9 @@
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
{-# LANGUAGE TypeOperators #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
-- The code from the ticket lacked these extensions,
-- but crashed the compiler with "GHC internal error"
diff --git a/testsuite/tests/polykinds/T12055a.hs b/testsuite/tests/polykinds/T12055a.hs
index dab523861b..ebc4dc7cad 100644
--- a/testsuite/tests/polykinds/T12055a.hs
+++ b/testsuite/tests/polykinds/T12055a.hs
@@ -3,9 +3,9 @@
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
{-# LANGUAGE TypeOperators #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE FlexibleInstances, UndecidableInstances, FunctionalDependencies #-}
diff --git a/testsuite/tests/polykinds/T12593.hs b/testsuite/tests/polykinds/T12593.hs
index 867fb89284..8fd4f26578 100644
--- a/testsuite/tests/polykinds/T12593.hs
+++ b/testsuite/tests/polykinds/T12593.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE GADTs, ConstraintKinds, PolyKinds, TypeInType, KindSignatures, RankNTypes #-}
+{-# LANGUAGE GADTs, ConstraintKinds, PolyKinds, KindSignatures, RankNTypes #-}
module T12593 where
diff --git a/testsuite/tests/polykinds/T12668.hs b/testsuite/tests/polykinds/T12668.hs
index 4640903cc5..c3d2902a25 100644
--- a/testsuite/tests/polykinds/T12668.hs
+++ b/testsuite/tests/polykinds/T12668.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
module T12668 where
diff --git a/testsuite/tests/polykinds/T12718.hs b/testsuite/tests/polykinds/T12718.hs
index 82d6dcd177..7bbe1d572e 100644
--- a/testsuite/tests/polykinds/T12718.hs
+++ b/testsuite/tests/polykinds/T12718.hs
@@ -1,5 +1,5 @@
{-# Language RebindableSyntax, NoImplicitPrelude, MagicHash, RankNTypes,
- PolyKinds, ViewPatterns, TypeInType, FlexibleInstances #-}
+ PolyKinds, ViewPatterns, FlexibleInstances #-}
module Main where
diff --git a/testsuite/tests/polykinds/T13391.hs b/testsuite/tests/polykinds/T13391.hs
deleted file mode 100644
index 6de3c3aa40..0000000000
--- a/testsuite/tests/polykinds/T13391.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# LANGUAGE PolyKinds, GADTs #-}
-
-module T13391 where
-
-data G (a :: k) where
- GInt :: G Int
- GMaybe :: G Maybe
diff --git a/testsuite/tests/polykinds/T13391.stderr b/testsuite/tests/polykinds/T13391.stderr
deleted file mode 100644
index 55fff35b3a..0000000000
--- a/testsuite/tests/polykinds/T13391.stderr
+++ /dev/null
@@ -1,7 +0,0 @@
-
-T13391.hs:6:3: error:
- • Data constructor ‘GInt’ constrains the choice of kind parameter:
- k ~ *
- Use TypeInType to allow this
- • In the definition of data constructor ‘GInt’
- In the data type declaration for ‘G’
diff --git a/testsuite/tests/polykinds/T13625.hs b/testsuite/tests/polykinds/T13625.hs
index 62d34611be..9367aa694f 100644
--- a/testsuite/tests/polykinds/T13625.hs
+++ b/testsuite/tests/polykinds/T13625.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T13625 where
diff --git a/testsuite/tests/polykinds/T13659.hs b/testsuite/tests/polykinds/T13659.hs
index 199ff08a8d..118a04f122 100644
--- a/testsuite/tests/polykinds/T13659.hs
+++ b/testsuite/tests/polykinds/T13659.hs
@@ -4,8 +4,10 @@
module T13659 where
+import Data.Kind (Type)
+
-- format string parameterized by a list of types
-data Format (fmt :: [*]) where
+data Format (fmt :: [Type]) where
X :: Format '[] -- empty string, i.e. ""
L :: a -> String -> Format '[] -- string literal, e.g. "hello"
S :: a -> Format '[String] -- "%s"
diff --git a/testsuite/tests/polykinds/T13659.stderr b/testsuite/tests/polykinds/T13659.stderr
index fac5cbb952..84e81d04c0 100644
--- a/testsuite/tests/polykinds/T13659.stderr
+++ b/testsuite/tests/polykinds/T13659.stderr
@@ -1,5 +1,5 @@
-T13659.hs:12:27: error:
+T13659.hs:14:27: error:
• Expected a type, but ‘a’ has kind ‘[*]’
• In the first argument of ‘Format’, namely ‘'[Int, a]’
In the type ‘Format '[Int, a]’
diff --git a/testsuite/tests/polykinds/T13738.hs b/testsuite/tests/polykinds/T13738.hs
index 85a1048f53..8420ca9158 100644
--- a/testsuite/tests/polykinds/T13738.hs
+++ b/testsuite/tests/polykinds/T13738.hs
@@ -1,9 +1,9 @@
{-# LANGUAGE PolyKinds #-}
-{-# LANGUAGE TypeInType #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
+
module T13738 where
import Data.Coerce
diff --git a/testsuite/tests/polykinds/T13985.stderr b/testsuite/tests/polykinds/T13985.stderr
index ec829dec4d..f60314a443 100644
--- a/testsuite/tests/polykinds/T13985.stderr
+++ b/testsuite/tests/polykinds/T13985.stderr
@@ -3,21 +3,21 @@ T13985.hs:12:1: error:
• Kind variable ‘k’ is implicitly bound in data family
‘Fam’, but does not appear as the kind of any
of its type variables. Perhaps you meant
- to bind it (with TypeInType) explicitly somewhere?
+ to bind it explicitly somewhere?
• In the data instance declaration for ‘Fam’
T13985.hs:15:15: error:
• Kind variable ‘a’ is implicitly bound in type family
‘T’, but does not appear as the kind of any
of its type variables. Perhaps you meant
- to bind it (with TypeInType) explicitly somewhere?
+ to bind it explicitly somewhere?
• In the type instance declaration for ‘T’
T13985.hs:22:3: error:
• Kind variable ‘k’ is implicitly bound in associated data family
‘CD’, but does not appear as the kind of any
of its type variables. Perhaps you meant
- to bind it (with TypeInType) explicitly somewhere?
+ to bind it explicitly somewhere?
• In the data instance declaration for ‘CD’
In the instance declaration for ‘C Type’
@@ -25,7 +25,7 @@ T13985.hs:23:8: error:
• Kind variable ‘a’ is implicitly bound in associated type family
‘CT’, but does not appear as the kind of any
of its type variables. Perhaps you meant
- to bind it (with TypeInType) explicitly somewhere?
+ to bind it explicitly somewhere?
• In the type instance declaration for ‘CT’
In the instance declaration for ‘C Type’
@@ -33,7 +33,7 @@ T13985.hs:27:3: error:
• Kind variable ‘x’ is implicitly bound in associated type family
‘ZT’, but does not appear as the kind of any
of its type variables. Perhaps you meant
- to bind it (with TypeInType) explicitly somewhere?
+ to bind it explicitly somewhere?
Type variables with inferred kinds: (k :: *) (a :: k)
• In the default type instance declaration for ‘ZT’
In the class declaration for ‘Z’
diff --git a/testsuite/tests/polykinds/T14174.hs b/testsuite/tests/polykinds/T14174.hs
index 7a58b70fc6..3fe4996225 100644
--- a/testsuite/tests/polykinds/T14174.hs
+++ b/testsuite/tests/polykinds/T14174.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, RankNTypes, KindSignatures, PolyKinds #-}
+{-# LANGUAGE RankNTypes, KindSignatures, PolyKinds #-}
module T14174 where
data T k (x :: k) = MkT
diff --git a/testsuite/tests/polykinds/T14174a.hs b/testsuite/tests/polykinds/T14174a.hs
index 82f418bc9d..bdd3d7ee88 100644
--- a/testsuite/tests/polykinds/T14174a.hs
+++ b/testsuite/tests/polykinds/T14174a.hs
@@ -1,14 +1,15 @@
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
module T14174a where
import Data.Kind
-data TyFun :: * -> * -> *
-type a ~> b = TyFun a b -> *
+data TyFun :: Type -> Type -> Type
+type a ~> b = TyFun a b -> Type
infixr 0 ~>
type family Apply (f :: k1 ~> k2) (x :: k1) :: k2
diff --git a/testsuite/tests/polykinds/T14209.hs b/testsuite/tests/polykinds/T14209.hs
index 3e0181c4ed..0f0648bd79 100644
--- a/testsuite/tests/polykinds/T14209.hs
+++ b/testsuite/tests/polykinds/T14209.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T14209 where
data MyProxy k (a :: k) = MyProxy
diff --git a/testsuite/tests/polykinds/T14270.hs b/testsuite/tests/polykinds/T14270.hs
index 2d11a29993..3eed83c657 100644
--- a/testsuite/tests/polykinds/T14270.hs
+++ b/testsuite/tests/polykinds/T14270.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE TypeInType #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE RankNTypes #-}
@@ -8,6 +7,7 @@
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE PolyKinds #-}
module T14270 (pattern App) where
import Data.Kind (Type)
diff --git a/testsuite/tests/polykinds/T14450.hs b/testsuite/tests/polykinds/T14450.hs
index 3b8f5b7e70..8571829619 100644
--- a/testsuite/tests/polykinds/T14450.hs
+++ b/testsuite/tests/polykinds/T14450.hs
@@ -1,4 +1,6 @@
-{-# Language KindSignatures, TypeOperators, PolyKinds, TypeOperators, ConstraintKinds, TypeFamilies, DataKinds, TypeInType, GADTs, AllowAmbiguousTypes, InstanceSigs #-}
+{-# Language KindSignatures, TypeOperators, PolyKinds, TypeOperators,
+ ConstraintKinds, TypeFamilies, DataKinds, GADTs,
+ AllowAmbiguousTypes, InstanceSigs #-}
module T14450 where
diff --git a/testsuite/tests/polykinds/T14450.stderr b/testsuite/tests/polykinds/T14450.stderr
index c7caf04220..e8ff4aeae3 100644
--- a/testsuite/tests/polykinds/T14450.stderr
+++ b/testsuite/tests/polykinds/T14450.stderr
@@ -1,5 +1,5 @@
-T14450.hs:31:12: error:
+T14450.hs:33:12: error:
• Expected kind ‘k ~> k’,
but ‘(IddSym0 :: Type ~> Type)’ has kind ‘* ~> *’
• In the first argument of ‘Dom’, namely
diff --git a/testsuite/tests/polykinds/T14515.hs b/testsuite/tests/polykinds/T14515.hs
index 15bdbfe31d..4a2540b925 100644
--- a/testsuite/tests/polykinds/T14515.hs
+++ b/testsuite/tests/polykinds/T14515.hs
@@ -1,5 +1,6 @@
{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
module Bug where
import Data.Kind
diff --git a/testsuite/tests/polykinds/T14520.hs b/testsuite/tests/polykinds/T14520.hs
index ed87035b24..23e903773b 100644
--- a/testsuite/tests/polykinds/T14520.hs
+++ b/testsuite/tests/polykinds/T14520.hs
@@ -1,4 +1,4 @@
-{-# Language TypeInType, TypeFamilies, TypeOperators #-}
+{-# Language DataKinds, PolyKinds, TypeFamilies, TypeOperators #-}
module T14520 where
@@ -10,7 +10,7 @@ data family Sing (a::k)
type family XXX (f::a~>>b) (x::a) :: b
-type family Id :: (kat :: a ~>> (a ~>> *)) `XXX` (b :: a) `XXX` b
+type family Id :: (kat :: a ~>> (a ~>> Type)) `XXX` (b :: a) `XXX` b
sId :: Sing w -> Sing (Id :: bat w w)
sId = sId
diff --git a/testsuite/tests/polykinds/T14555.hs b/testsuite/tests/polykinds/T14555.hs
index 0ab71b1b76..7f37a5ec9c 100644
--- a/testsuite/tests/polykinds/T14555.hs
+++ b/testsuite/tests/polykinds/T14555.hs
@@ -1,10 +1,10 @@
-{-# Language TypeInType #-}
{-# Language TypeOperators, DataKinds, PolyKinds, GADTs #-}
+
module T14555 where
import Data.Kind
-import GHC.Types (TYPE)
+import GHC.Types (TYPE, Type)
data Exp :: [TYPE rep] -> TYPE rep -> Type where
--data Exp (x :: [TYPE rep]) (y :: TYPE rep) where
diff --git a/testsuite/tests/polykinds/T14561.hs b/testsuite/tests/polykinds/T14561.hs
index f528e7c813..7b1f17e08e 100644
--- a/testsuite/tests/polykinds/T14561.hs
+++ b/testsuite/tests/polykinds/T14561.hs
@@ -1,5 +1,5 @@
-{-# LANGUAGE TypeInType #-}
{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE MagicHash #-}
diff --git a/testsuite/tests/polykinds/T14563.hs b/testsuite/tests/polykinds/T14563.hs
index bedc99f54b..bdc05dd6df 100644
--- a/testsuite/tests/polykinds/T14563.hs
+++ b/testsuite/tests/polykinds/T14563.hs
@@ -1,6 +1,6 @@
-{-# Language TypeInType #-}
{-# Language RankNTypes, KindSignatures, PolyKinds #-}
{-# OPTIONS_GHC -fprint-explicit-runtime-reps #-}
+
import GHC.Types (TYPE)
import Data.Kind
diff --git a/testsuite/tests/polykinds/T14580.hs b/testsuite/tests/polykinds/T14580.hs
index 6d11d78dfe..58983cc117 100644
--- a/testsuite/tests/polykinds/T14580.hs
+++ b/testsuite/tests/polykinds/T14580.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE PolyKinds, DataKinds, TypeInType, TypeOperators #-}
+{-# LANGUAGE PolyKinds, DataKinds, TypeOperators #-}
module T14580 where
import Data.Kind
diff --git a/testsuite/tests/polykinds/T14710.stderr b/testsuite/tests/polykinds/T14710.stderr
index 8d8a9785a8..0bbfb0d641 100644
--- a/testsuite/tests/polykinds/T14710.stderr
+++ b/testsuite/tests/polykinds/T14710.stderr
@@ -20,19 +20,11 @@ T14710.hs:18:24: error:
In the type signature for ‘g2’
T14710.hs:21:31: error:
- Variable ‘k’ used as both a kind and a type
- Did you intend to use TypeInType?
-
-T14710.hs:21:31: error:
Unexpected kind variable ‘k’
Perhaps you intended to use PolyKinds
In the type signature for ‘h1’
T14710.hs:24:22: error:
- Variable ‘k’ used as both a kind and a type
- Did you intend to use TypeInType?
-
-T14710.hs:24:22: error:
Unexpected kind variable ‘k’
Perhaps you intended to use PolyKinds
In the type signature for ‘h2’
diff --git a/testsuite/tests/polykinds/T14846.hs b/testsuite/tests/polykinds/T14846.hs
index 7b96e942f3..0f70962562 100644
--- a/testsuite/tests/polykinds/T14846.hs
+++ b/testsuite/tests/polykinds/T14846.hs
@@ -6,7 +6,7 @@
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module T14846 where
import Data.Kind
diff --git a/testsuite/tests/polykinds/T14873.hs b/testsuite/tests/polykinds/T14873.hs
index 6bb66ec640..9450a019bc 100644
--- a/testsuite/tests/polykinds/T14873.hs
+++ b/testsuite/tests/polykinds/T14873.hs
@@ -2,8 +2,9 @@
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
module T14873 where
import Data.Kind (Type)
diff --git a/testsuite/tests/polykinds/T15170.hs b/testsuite/tests/polykinds/T15170.hs
index a105ca5344..02de90ae12 100644
--- a/testsuite/tests/polykinds/T15170.hs
+++ b/testsuite/tests/polykinds/T15170.hs
@@ -1,7 +1,7 @@
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module T15170 where
diff --git a/testsuite/tests/polykinds/T5716.hs b/testsuite/tests/polykinds/T5716.hs
index 1b705a36b1..217e4c399a 100644
--- a/testsuite/tests/polykinds/T5716.hs
+++ b/testsuite/tests/polykinds/T5716.hs
@@ -4,10 +4,11 @@
module T5716 where
+import Data.Kind (Type)
data family DF a
data instance DF Int = DFInt
data U = U1 (DF Int)
-data I :: U -> * where I1 :: I (U1 DFInt)
+data I :: U -> Type where I1 :: I (U1 DFInt)
diff --git a/testsuite/tests/polykinds/T5716.stderr b/testsuite/tests/polykinds/T5716.stderr
index 0e3596da32..41bf517339 100644
--- a/testsuite/tests/polykinds/T5716.stderr
+++ b/testsuite/tests/polykinds/T5716.stderr
@@ -1,7 +1,7 @@
-T5716.hs:13:33: error:
- • Data constructor ‘U1’ cannot be used here
- (perhaps you intended to use TypeInType)
- • In the first argument of ‘I’, namely ‘(U1 DFInt)’
+T5716.hs:14:39: error:
+ • Data constructor ‘DFInt’ cannot be used here
+ (it comes from a data family instance)
+ • In the first argument of ‘U1’, namely ‘DFInt’
+ In the first argument of ‘I’, namely ‘(U1 DFInt)’
In the type ‘I (U1 DFInt)’
- In the definition of data constructor ‘I1’
diff --git a/testsuite/tests/polykinds/T6021.stderr b/testsuite/tests/polykinds/T6021.stderr
deleted file mode 100644
index d747043d27..0000000000
--- a/testsuite/tests/polykinds/T6021.stderr
+++ /dev/null
@@ -1,4 +0,0 @@
-
-T6021.hs:5:22: error:
- Variable ‘b’ used as both a kind and a type
- Did you intend to use TypeInType?
diff --git a/testsuite/tests/polykinds/T6035.hs b/testsuite/tests/polykinds/T6035.hs
index a6f5ffe54a..c89de8e73d 100644
--- a/testsuite/tests/polykinds/T6035.hs
+++ b/testsuite/tests/polykinds/T6035.hs
@@ -3,9 +3,11 @@
module T6035 where
+import Data.Kind (Type)
+
data Nat = Zero | Succ Nat
-type family Sing (a :: k) :: k -> *
+type family Sing (a :: k) :: k -> Type
data SNat n where
SZero :: SNat Zero
diff --git a/testsuite/tests/polykinds/T6039.stderr b/testsuite/tests/polykinds/T6039.stderr
index 048efd538f..bcaa2e1b4c 100644
--- a/testsuite/tests/polykinds/T6039.stderr
+++ b/testsuite/tests/polykinds/T6039.stderr
@@ -1,4 +1,10 @@
-T6039.hs:5:14: error:
- • Expected kind ‘* -> *’, but ‘j’ has kind ‘*’
- • In the kind ‘j k’
+T6039.hs:5:1: error:
+ You have written a *complete user-suppled kind signature*,
+ but the following variable is undetermined: k0 :: *
+ Perhaps add a kind signature.
+ Inferred kinds of user-written variables:
+ j :: k0 -> *
+ k :: k0
+ a :: j k
+ Inferred result kind: *
diff --git a/testsuite/tests/polykinds/T6093.hs b/testsuite/tests/polykinds/T6093.hs
index 3fdeb207f8..1063b8661d 100644
--- a/testsuite/tests/polykinds/T6093.hs
+++ b/testsuite/tests/polykinds/T6093.hs
@@ -1,13 +1,12 @@
-{-# LANGUAGE GADTs, PolyKinds #-}
+{-# LANGUAGE GADTs, RankNTypes, PolyKinds #-}
module T6093 where
-- Polymorphic kind recursion
-data R :: k -> * where
+data R :: forall k. k -> * where
MkR :: R f -> R (f ())
-
data IOWitness (a :: k) = IOW
-data Type :: k -> * where
+data Type :: forall k. k -> * where
SimpleType :: IOWitness a -> Type a
ConstructedType :: Type f -> Type a -> Type (f a)
diff --git a/testsuite/tests/polykinds/T7404.stderr b/testsuite/tests/polykinds/T7404.stderr
deleted file mode 100644
index abae5a6215..0000000000
--- a/testsuite/tests/polykinds/T7404.stderr
+++ /dev/null
@@ -1,4 +0,0 @@
-
-T7404.hs:4:32: error:
- Variable ‘x’ used as both a kind and a type
- Did you intend to use TypeInType?
diff --git a/testsuite/tests/polykinds/T7594.hs b/testsuite/tests/polykinds/T7594.hs
index ae21956d45..925b3f9ace 100644
--- a/testsuite/tests/polykinds/T7594.hs
+++ b/testsuite/tests/polykinds/T7594.hs
@@ -10,9 +10,11 @@
module T7594 where
-import GHC.Exts (Constraint)
+import Data.Kind (Constraint, Type)
-class (c1 t, c2 t) => (:&:) (c1 :: * -> Constraint) (c2 :: * -> Constraint) (t :: *)
+class (c1 t, c2 t) => (:&:) (c1 :: Type -> Constraint)
+ (c2 :: Type -> Constraint)
+ (t :: Type)
instance (c1 t, c2 t) => (:&:) c1 c2 t
data ColD c where
diff --git a/testsuite/tests/polykinds/T7594.stderr b/testsuite/tests/polykinds/T7594.stderr
index 3ea08a3fb8..1b4b9017f7 100644
--- a/testsuite/tests/polykinds/T7594.stderr
+++ b/testsuite/tests/polykinds/T7594.stderr
@@ -1,17 +1,18 @@
-T7594.hs:35:12: error:
+T7594.hs:37:12: error:
• Couldn't match type ‘b’ with ‘IO ()’
‘b’ is untouchable
inside the constraints: (:&:) c0 Real a
bound by a type expected by the context:
forall a. (:&:) c0 Real a => a -> b
- at T7594.hs:35:8-19
+ at T7594.hs:37:8-19
‘b’ is a rigid type variable bound by
- the inferred type of bar2 :: b at T7594.hs:35:1-19
+ the inferred type of bar2 :: b
+ at T7594.hs:37:1-19
Possible fix: add a type signature for ‘bar2’
Expected type: a -> b
Actual type: a -> IO ()
• In the first argument of ‘app’, namely ‘print’
In the expression: app print q2
In an equation for ‘bar2’: bar2 = app print q2
- • Relevant bindings include bar2 :: b (bound at T7594.hs:35:1)
+ • Relevant bindings include bar2 :: b (bound at T7594.hs:37:1)
diff --git a/testsuite/tests/polykinds/T8566.hs b/testsuite/tests/polykinds/T8566.hs
index 248febb586..2ffdecfd6e 100644
--- a/testsuite/tests/polykinds/T8566.hs
+++ b/testsuite/tests/polykinds/T8566.hs
@@ -10,10 +10,12 @@
module T8566 where
-data U (s :: *) = forall v. AA v [U s]
+import Data.Kind (Type)
+
+data U (s :: Type) = forall v. AA v [U s]
-- AA :: forall (s:*) (v:*). v -> [U s] -> U s
-data I (u :: U *) (r :: [*]) :: * where
+data I (u :: U Type) (r :: [Type]) :: Type where
A :: I (AA t as) r -- Existential k
-- A :: forall (u:U *) (r:[*]) Universal
@@ -22,7 +24,7 @@ data I (u :: U *) (r :: [*]) :: * where
-- I u r
-- fs unused, but needs to be present for the bug
-class C (u :: U *) (r :: [*]) (fs :: [*]) where
+class C (u :: U Type) (r :: [Type]) (fs :: [Type]) where
c :: I u r -> I u r
-- c :: forall (u :: U *) (r :: [*]) (fs :: [*]). C u r fs => I u r -> I u r
diff --git a/testsuite/tests/polykinds/T8566.stderr b/testsuite/tests/polykinds/T8566.stderr
index d368d055f0..23dddf66c7 100644
--- a/testsuite/tests/polykinds/T8566.stderr
+++ b/testsuite/tests/polykinds/T8566.stderr
@@ -1,18 +1,18 @@
-T8566.hs:32:9: error:
+T8566.hs:34:9: error:
• Could not deduce (C ('AA (t (I a ps)) as) ps fs0)
arising from a use of ‘c’
from the context: C ('AA (t (I a ps)) as) ps fs
- bound by the instance declaration at T8566.hs:30:10-67
+ bound by the instance declaration at T8566.hs:32:10-67
or from: 'AA t (a : as) ~ 'AA t1 as1
bound by a pattern with constructor:
A :: forall v (t :: v) (as :: [U *]) (r :: [*]). I ('AA t as) r,
in an equation for ‘c’
- at T8566.hs:32:5
+ at T8566.hs:34:5
The type variable ‘fs0’ is ambiguous
Relevant bindings include
c :: I ('AA t (a : as)) ps -> I ('AA t (a : as)) ps
- (bound at T8566.hs:32:3)
+ (bound at T8566.hs:34:3)
• In the expression: c undefined
In an equation for ‘c’: c A = c undefined
In the instance declaration for ‘C ('AA t (a : as)) ps fs’
diff --git a/testsuite/tests/polykinds/T8566a.hs b/testsuite/tests/polykinds/T8566a.hs
index 3d20c3e27d..22b628553f 100644
--- a/testsuite/tests/polykinds/T8566a.hs
+++ b/testsuite/tests/polykinds/T8566a.hs
@@ -6,13 +6,15 @@
{-# LANGUAGE TypeOperators #-}
module T8566a where
+import Data.Kind (Type)
+
data Field = forall k. APP k [Field]
-data InField (u :: Field) :: * where
+data InField (u :: Field) :: Type where
A :: AppVars t (ExpandField args) -> InField (APP t args)
-type family ExpandField (args :: [Field]) :: [*]
-type family AppVars (t :: k) (vs :: [*]) :: *
+type family ExpandField (args :: [Field]) :: [Type]
+type family AppVars (t :: k) (vs :: [Type]) :: Type
-- This function fails to compile, because we discard
-- 'given' kind equalities. See comment 7 in Trac #8566
diff --git a/testsuite/tests/polykinds/T8985.hs b/testsuite/tests/polykinds/T8985.hs
index 28a354be27..d9e8d2c66a 100644
--- a/testsuite/tests/polykinds/T8985.hs
+++ b/testsuite/tests/polykinds/T8985.hs
@@ -1,12 +1,14 @@
{-# LANGUAGE DataKinds, PolyKinds, TypeFamilies, GADTs, TypeOperators #-}
-module T8905 where
+module T8985 where
+
+import Data.Kind (Type)
data X (xs :: [k]) = MkX
-data Y :: (k -> *) -> [k] -> * where
+data Y :: (k -> Type) -> [k] -> Type where
MkY :: f x -> Y f (x ': xs)
-type family F (a :: [[*]]) :: *
+type family F (a :: [[Type]]) :: Type
type instance F xss = Y X xss
works :: Y X '[ '[ ] ] -> ()
diff --git a/testsuite/tests/polykinds/T9222.hs b/testsuite/tests/polykinds/T9222.hs
index 8e46ccb3c5..3af1458427 100644
--- a/testsuite/tests/polykinds/T9222.hs
+++ b/testsuite/tests/polykinds/T9222.hs
@@ -1,6 +1,7 @@
{-# LANGUAGE RankNTypes, GADTs, DataKinds, PolyKinds, TypeOperators, TypeFamilies #-}
module T9222 where
+import Data.Kind
import Data.Proxy
-- Nov 2014: actually the type of Want is ambiguous if we
@@ -9,5 +10,5 @@ import Data.Proxy
-- So this program is erroneous. (But the original ticket was
-- a crash, and that's still fixed!)
-data Want :: (i,j) -> * where
+data Want :: (i,j) -> Type where
Want :: (a ~ '(b,c) => Proxy b) -> Want a
diff --git a/testsuite/tests/polykinds/T9222.stderr b/testsuite/tests/polykinds/T9222.stderr
index 604cc1b7ec..be80a79198 100644
--- a/testsuite/tests/polykinds/T9222.stderr
+++ b/testsuite/tests/polykinds/T9222.stderr
@@ -1,16 +1,16 @@
-T9222.hs:13:3: error:
+T9222.hs:14:3: error:
• Couldn't match type ‘c0’ with ‘c’
‘c0’ is untouchable
inside the constraints: a ~ '(b0, c0)
bound by the type of the constructor ‘Want’:
(a ~ '(b0, c0)) => Proxy b0
- at T9222.hs:13:3-43
+ at T9222.hs:14:3-43
‘c’ is a rigid type variable bound by
the type of the constructor ‘Want’:
forall i1 j1 (a :: (i1, j1)) (b :: i1) (c :: j1).
((a ~ '(b, c)) => Proxy b) -> Want a
- at T9222.hs:13:3-43
+ at T9222.hs:14:3-43
• In the ambiguity check for ‘Want’
To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
In the definition of data constructor ‘Want’
diff --git a/testsuite/tests/polykinds/all.T b/testsuite/tests/polykinds/all.T
index 4fe88b2385..c3250b7ffd 100644
--- a/testsuite/tests/polykinds/all.T
+++ b/testsuite/tests/polykinds/all.T
@@ -38,7 +38,7 @@ test('T6036', normal, compile, [''])
test('T6025', normal, run_command, ['$MAKE -s --no-print-directory T6025'])
test('T6002', normal, compile, [''])
test('T6039', normal, compile_fail, [''])
-test('T6021', normal, compile_fail, [''])
+test('T6021', normal, compile, [''])
test('T6020a', normal, compile, [''])
test('T6044', normal, compile, [''])
test('T6054', normal, run_command, ['$MAKE -s --no-print-directory T6054'])
@@ -74,7 +74,7 @@ test('T7341', normal, compile_fail,[''])
test('T7422', normal, compile,[''])
test('T7433', normal, compile_fail,[''])
test('T7438', normal, run_command, ['$MAKE -s --no-print-directory T7438'])
-test('T7404', normal, compile_fail,[''])
+test('T7404', normal, compile,[''])
test('T7502', normal, compile,[''])
test('T7488', normal, compile,[''])
test('T7594', normal, compile_fail,[''])
@@ -170,7 +170,6 @@ test('BadKindVar', normal, compile_fail, [''])
test('T13738', normal, compile_fail, [''])
test('T14209', normal, compile, [''])
test('T14265', normal, compile_fail, [''])
-test('T13391', normal, compile_fail, [''])
test('T13391a', normal, compile, [''])
test('T14270', normal, compile, [''])
test('T14450', normal, compile_fail, [''])
diff --git a/testsuite/tests/printer/Ppr040.hs b/testsuite/tests/printer/Ppr040.hs
index a9885a9d53..6fc7b09b15 100644
--- a/testsuite/tests/printer/Ppr040.hs
+++ b/testsuite/tests/printer/Ppr040.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE TemplateHaskell, RankNTypes, TypeOperators, DataKinds,
- PolyKinds, TypeFamilies, GADTs, TypeInType #-}
+ PolyKinds, TypeFamilies, GADTs, StarIsType #-}
module RAE_T32a where
diff --git a/testsuite/tests/printer/Ppr045.hs b/testsuite/tests/printer/Ppr045.hs
index 73364982b4..b4843afc51 100644
--- a/testsuite/tests/printer/Ppr045.hs
+++ b/testsuite/tests/printer/Ppr045.hs
@@ -5,6 +5,7 @@
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE StarIsType #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE UndecidableSuperClasses #-}
{-# OPTIONS_GHC -fwarn-incomplete-patterns -fwarn-overlapping-patterns #-}
diff --git a/testsuite/tests/rename/should_fail/T11592.hs b/testsuite/tests/rename/should_fail/T11592.hs
index b963cdf8ba..53714f1a68 100644
--- a/testsuite/tests/rename/should_fail/T11592.hs
+++ b/testsuite/tests/rename/should_fail/T11592.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module Bug11592 where
diff --git a/testsuite/tests/rename/should_fail/T13947.stderr b/testsuite/tests/rename/should_fail/T13947.stderr
index 8a636a2bb9..8533f9f743 100644
--- a/testsuite/tests/rename/should_fail/T13947.stderr
+++ b/testsuite/tests/rename/should_fail/T13947.stderr
@@ -1,3 +1,3 @@
-T13947.hs:4:12: error:
+T13947.hs:4:16: error:
Not in scope: type constructor or class ‘:~:’
diff --git a/testsuite/tests/simplCore/should_compile/T13025a.hs b/testsuite/tests/simplCore/should_compile/T13025a.hs
index 3f9a4cbe21..cdfb899c1a 100644
--- a/testsuite/tests/simplCore/should_compile/T13025a.hs
+++ b/testsuite/tests/simplCore/should_compile/T13025a.hs
@@ -4,17 +4,19 @@
TypeOperators #-}
module T13025a where
+import Data.Kind (Type)
+
data Nat = Z | S Nat
data Proxy a = Proxy
-data Field :: (k,*) -> * where
+data Field :: (k,Type) -> Type where
Field :: a -> Field '(s,a)
type family Index r rs :: Nat where
Index r (r ': rs) = 'Z
Index r (s ': rs) = 'S (Index r rs)
-data Rec (rs :: [ (k,*) ]) where
+data Rec (rs :: [ (k,Type) ]) where
Nil :: Rec '[]
(:&) :: Field r -> Rec rs -> Rec (r ': rs)
infixr 5 :&
diff --git a/testsuite/tests/simplCore/should_compile/T13658.hs b/testsuite/tests/simplCore/should_compile/T13658.hs
index 0890e89b7f..662fa66022 100644
--- a/testsuite/tests/simplCore/should_compile/T13658.hs
+++ b/testsuite/tests/simplCore/should_compile/T13658.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE RankNTypes #-}
diff --git a/testsuite/tests/simplCore/should_compile/T14270a.hs b/testsuite/tests/simplCore/should_compile/T14270a.hs
index 840b1e8436..5054b43a2c 100644
--- a/testsuite/tests/simplCore/should_compile/T14270a.hs
+++ b/testsuite/tests/simplCore/should_compile/T14270a.hs
@@ -1,4 +1,5 @@
-{-# LANGUAGE TypeApplications, ScopedTypeVariables, GADTs, RankNTypes, TypeInType, KindSignatures #-}
+{-# LANGUAGE TypeApplications, ScopedTypeVariables, GADTs, RankNTypes,
+ PolyKinds, KindSignatures #-}
{-# OPTIONS_GHC -O2 #-} -- We are provoking a bug in SpecConstr
module T14270a where
diff --git a/testsuite/tests/simplCore/should_compile/T15186A.hs b/testsuite/tests/simplCore/should_compile/T15186A.hs
index 472d01c0af..151fcec987 100644
--- a/testsuite/tests/simplCore/should_compile/T15186A.hs
+++ b/testsuite/tests/simplCore/should_compile/T15186A.hs
@@ -32,7 +32,7 @@ data BinomialTree (h::Height) (f :: k -> Type) :: Ctx k -> Type where
-> !(BinomialTree ('Succ h) f x)
-> BinomialTree h f x
-newtype Assignment (f :: k -> *) (ctx :: Ctx k)
+newtype Assignment (f :: k -> Type) (ctx :: Ctx k)
= Assignment (BinomialTree 'Zero f ctx)
data AssignView f ctx where
diff --git a/testsuite/tests/simplCore/should_compile/T4903a.hs b/testsuite/tests/simplCore/should_compile/T4903a.hs
index 8c8700038e..df6cb5bd32 100644
--- a/testsuite/tests/simplCore/should_compile/T4903a.hs
+++ b/testsuite/tests/simplCore/should_compile/T4903a.hs
@@ -8,18 +8,20 @@
module T4903a where
+import Data.Kind
+
class El phi ix where
proof :: phi ix
class Fam phi where
from :: phi ix -> ix -> PF phi I0 ix
-type family PF (phi :: * -> *) :: (* -> *) -> * -> *
+type family PF (phi :: Type -> Type) :: (Type -> Type) -> Type -> Type
data I0 a = I0 a
-data I xi (r :: * -> *) ix = I (r xi)
-data (f :*: g) (r :: * -> *) ix = f r ix :*: g r ix
+data I xi (r :: Type -> Type) ix = I (r xi)
+data (f :*: g) (r :: Type -> Type) ix = f r ix :*: g r ix
class HEq phi f where
heq :: (forall ix. phi ix -> r ix -> Bool)
@@ -45,7 +47,7 @@ tree :: Tree
-- The problem only occurs on an inifite (or very large) structure
tree = Bin tree tree
-data TreeF :: * -> * where Tree :: TreeF Tree
+data TreeF :: Type -> Type where Tree :: TreeF Tree
type instance PF TreeF = I Tree :*: I Tree
-- If the representation is only |I Tree| then there is no problem
diff --git a/testsuite/tests/simplCore/should_run/T13750a.hs b/testsuite/tests/simplCore/should_run/T13750a.hs
index 7ed72ca241..ac3806e7f9 100644
--- a/testsuite/tests/simplCore/should_run/T13750a.hs
+++ b/testsuite/tests/simplCore/should_run/T13750a.hs
@@ -6,14 +6,15 @@
{-# LANGUAGE ViewPatterns #-}
module T13750a where
+import Data.Kind (Type)
import Unsafe.Coerce
-type family AnyT :: * where {}
-type family AnyList :: [*] where {}
+type family AnyT :: Type where {}
+type family AnyList :: [Type] where {}
-newtype NP (xs :: [*]) = NP [AnyT]
+newtype NP (xs :: [Type]) = NP [AnyT]
-data IsNP (xs :: [*]) where
+data IsNP (xs :: [Type]) where
IsNil :: IsNP '[]
IsCons :: x -> NP xs -> IsNP (x ': xs)
@@ -34,9 +35,9 @@ pattern x :* xs <- (isNP -> IsCons x xs)
x :* NP xs = NP (unsafeCoerce x : xs)
infixr 5 :*
-data NS (xs :: [[*]]) = NS !Int (NP AnyList)
+data NS (xs :: [[Type]]) = NS !Int (NP AnyList)
-data IsNS (xs :: [[*]]) where
+data IsNS (xs :: [[Type]]) where
IsZ :: NP x -> IsNS (x ': xs)
IsS :: NS xs -> IsNS (x ': xs)
diff --git a/testsuite/tests/th/T11463.hs b/testsuite/tests/th/T11463.hs
index 1faf5964f4..3cb57d1cea 100644
--- a/testsuite/tests/th/T11463.hs
+++ b/testsuite/tests/th/T11463.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module Main where
import Data.Kind
diff --git a/testsuite/tests/th/T11484.hs b/testsuite/tests/th/T11484.hs
index d8c0708bd2..e1e30fc694 100644
--- a/testsuite/tests/th/T11484.hs
+++ b/testsuite/tests/th/T11484.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T11484 where
diff --git a/testsuite/tests/th/T13642.hs b/testsuite/tests/th/T13642.hs
index 090b891433..ab655c0e4a 100644
--- a/testsuite/tests/th/T13642.hs
+++ b/testsuite/tests/th/T13642.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE GADTs, TypeInType, TemplateHaskell, RankNTypes #-}
+{-# LANGUAGE GADTs, PolyKinds, TemplateHaskell, RankNTypes #-}
module T13642 where
import Data.Kind (Type)
diff --git a/testsuite/tests/th/T13781.hs b/testsuite/tests/th/T13781.hs
index 7498f56bae..2fd2f1a3d4 100644
--- a/testsuite/tests/th/T13781.hs
+++ b/testsuite/tests/th/T13781.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T13781 where
import Data.Kind
diff --git a/testsuite/tests/th/T14060.hs b/testsuite/tests/th/T14060.hs
index 5527b25b6e..8c4f2ddc95 100644
--- a/testsuite/tests/th/T14060.hs
+++ b/testsuite/tests/th/T14060.hs
@@ -2,7 +2,7 @@
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilyDependencies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module Main where
import Data.Kind
diff --git a/testsuite/tests/th/T14869.hs b/testsuite/tests/th/T14869.hs
index c58d4e2720..4b0dcdc171 100644
--- a/testsuite/tests/th/T14869.hs
+++ b/testsuite/tests/th/T14869.hs
@@ -1,7 +1,7 @@
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
module T14869 where
import Data.Kind
diff --git a/testsuite/tests/th/T8031.hs b/testsuite/tests/th/T8031.hs
index 9f06c06ed6..08081ed6fd 100644
--- a/testsuite/tests/th/T8031.hs
+++ b/testsuite/tests/th/T8031.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TemplateHaskell, RankNTypes, TypeOperators, TypeInType,
+{-# LANGUAGE TemplateHaskell, RankNTypes, TypeOperators, DataKinds, PolyKinds,
GADTs #-}
module T8031 where
@@ -6,7 +6,7 @@ module T8031 where
import Data.Proxy
import Data.Kind
-data SList :: [k] -> * where
+data SList :: [k] -> Type where
SCons :: Proxy h -> Proxy t -> SList (h ': t)
$( [d| foo :: forall (a :: k). Proxy a
diff --git a/testsuite/tests/th/TH_RichKinds2.hs b/testsuite/tests/th/TH_RichKinds2.hs
index ab3e107d0f..9ac13a157b 100644
--- a/testsuite/tests/th/TH_RichKinds2.hs
+++ b/testsuite/tests/th/TH_RichKinds2.hs
@@ -8,6 +8,7 @@
module TH_RichKinds2 where
+import qualified Data.Kind as K
import Data.Char
import Data.List
import Language.Haskell.TH
@@ -32,7 +33,7 @@ $( let fixKs :: String -> String -- need to remove TH renaming index from k vari
if length index == 0 then s else
prefix ++ "0" ++ (fixKs rest)
in
- do decls <- [d| data SMaybe :: (k -> *) -> (Maybe k) -> * where
+ do decls <- [d| data SMaybe :: (k -> K.Type) -> (Maybe k) -> K.Type where
SNothing :: SMaybe s 'Nothing
SJust :: s a -> SMaybe s ('Just a)
@@ -42,7 +43,7 @@ $( let fixKs :: String -> String -- need to remove TH renaming index from k vari
reportWarning (fixKs (pprint decls))
return decls )
-data SBool :: Bool -> * where
+data SBool :: Bool -> K.Type where
SFalse :: SBool 'False
STrue :: SBool 'True
diff --git a/testsuite/tests/th/TH_RichKinds2.stderr b/testsuite/tests/th/TH_RichKinds2.stderr
index 6b0662218a..8970da8bdb 100644
--- a/testsuite/tests/th/TH_RichKinds2.stderr
+++ b/testsuite/tests/th/TH_RichKinds2.stderr
@@ -1,5 +1,5 @@
-TH_RichKinds2.hs:24:4: warning:
+TH_RichKinds2.hs:25:4: warning:
data SMaybe_0 :: (k_0 -> *) -> GHC.Base.Maybe k_0 -> * where
SNothing_2 :: SMaybe_0 s_3 'GHC.Base.Nothing
SJust_4 :: (s_5 a_6) -> SMaybe_0 s_5 ('GHC.Base.Just a_6)
diff --git a/testsuite/tests/typecheck/should_compile/SplitWD.hs b/testsuite/tests/typecheck/should_compile/SplitWD.hs
index 370b077b6e..5281cdbf0e 100644
--- a/testsuite/tests/typecheck/should_compile/SplitWD.hs
+++ b/testsuite/tests/typecheck/should_compile/SplitWD.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE ScopedTypeVariables, TypeInType, TypeOperators,
+{-# LANGUAGE ScopedTypeVariables, TypeOperators, DataKinds, PolyKinds,
TypeFamilies, GADTs, StandaloneDeriving #-}
module SplitWD where
diff --git a/testsuite/tests/typecheck/should_compile/T10432.hs b/testsuite/tests/typecheck/should_compile/T10432.hs
index 7a9821e6cf..ec46f17f14 100644
--- a/testsuite/tests/typecheck/should_compile/T10432.hs
+++ b/testsuite/tests/typecheck/should_compile/T10432.hs
@@ -2,15 +2,16 @@
DataKinds, RankNTypes, GADTs, TypeOperators #-}
module T10432 where
+import Data.Kind (Type)
import Data.Type.Equality
data WrappedType = forall a. WrapType a;
-matchReflK :: forall (a :: ka) (b :: kb) (r :: *).
+matchReflK :: forall (a :: ka) (b :: kb) (r :: Type).
('WrapType a :~: 'WrapType b) -> (('WrapType a ~ 'WrapType b) => r) -> r;
matchReflK Refl r = r;
-matchReflK2 :: forall (a :: ka) (b :: kb) (r :: *).
+matchReflK2 :: forall (a :: ka) (b :: kb) (r :: Type).
('WrapType a :~: 'WrapType b) -> r
matchReflK2 x = let foo :: ('WrapType a ~ 'WrapType b) => r
foo = undefined
diff --git a/testsuite/tests/typecheck/should_compile/T11237.hs b/testsuite/tests/typecheck/should_compile/T11237.hs
index 422aefdb67..db15a7b337 100644
--- a/testsuite/tests/typecheck/should_compile/T11237.hs
+++ b/testsuite/tests/typecheck/should_compile/T11237.hs
@@ -1,6 +1,6 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, KindSignatures #-}
{-# LANGUAGE GADTs #-}
-module TypeInTypeBug where
+module T11237 where
import qualified Data.Kind
diff --git a/testsuite/tests/typecheck/should_compile/T11348.hs b/testsuite/tests/typecheck/should_compile/T11348.hs
index 2548dbdab7..6edc0acd3e 100644
--- a/testsuite/tests/typecheck/should_compile/T11348.hs
+++ b/testsuite/tests/typecheck/should_compile/T11348.hs
@@ -2,7 +2,6 @@
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE TypeInType #-}
module T11348 where
diff --git a/testsuite/tests/typecheck/should_compile/T11524.hs b/testsuite/tests/typecheck/should_compile/T11524.hs
index d257554439..d6e2adf4f4 100644
--- a/testsuite/tests/typecheck/should_compile/T11524.hs
+++ b/testsuite/tests/typecheck/should_compile/T11524.hs
@@ -2,7 +2,6 @@
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE ExplicitForAll #-}
{-# LANGUAGE PatternSynonyms #-}
-{-# LANGUAGE TypeInType #-}
module T11524 where
diff --git a/testsuite/tests/typecheck/should_compile/T11723.hs b/testsuite/tests/typecheck/should_compile/T11723.hs
index 1933024f2e..636e40fdb0 100644
--- a/testsuite/tests/typecheck/should_compile/T11723.hs
+++ b/testsuite/tests/typecheck/should_compile/T11723.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module Example where
import Data.Typeable
diff --git a/testsuite/tests/typecheck/should_compile/T11811.hs b/testsuite/tests/typecheck/should_compile/T11811.hs
index 16a225b4cf..a3fadb92e7 100644
--- a/testsuite/tests/typecheck/should_compile/T11811.hs
+++ b/testsuite/tests/typecheck/should_compile/T11811.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, GADTs #-}
+{-# LANGUAGE PolyKinds, GADTs #-}
module T11811 where
diff --git a/testsuite/tests/typecheck/should_compile/T12133.hs b/testsuite/tests/typecheck/should_compile/T12133.hs
index f2502a786a..f35c51000d 100644
--- a/testsuite/tests/typecheck/should_compile/T12133.hs
+++ b/testsuite/tests/typecheck/should_compile/T12133.hs
@@ -11,10 +11,10 @@
module T12133 where
import GHC.Classes (IP(..))
-import GHC.Exts (Constraint)
+import Data.Kind (Constraint, Type)
-- | From "Data.Constraint":
-data Dict :: Constraint -> * where Dict :: a => Dict a
+data Dict :: Constraint -> Type where Dict :: a => Dict a
newtype a :- b = Sub (a => Dict b)
@@ -65,4 +65,4 @@ t.hs:44:13: error:
foo :: (c1, c2) :- c3 -> (c1, (IP sym ty, c2)) :- (IP sym ty, c3)
(bound at t.hs:40:1)
Failed, modules loaded: none.
--} \ No newline at end of file
+-}
diff --git a/testsuite/tests/typecheck/should_compile/T12381.hs b/testsuite/tests/typecheck/should_compile/T12381.hs
index 9d4d731374..102a48321c 100644
--- a/testsuite/tests/typecheck/should_compile/T12381.hs
+++ b/testsuite/tests/typecheck/should_compile/T12381.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, TypeFamilies #-}
+{-# LANGUAGE DataKinds, PolyKinds, TypeFamilies #-}
module Kinds where
import GHC.Types
diff --git a/testsuite/tests/typecheck/should_compile/T12734.hs b/testsuite/tests/typecheck/should_compile/T12734.hs
index a3b26d5aaf..e88d21a233 100644
--- a/testsuite/tests/typecheck/should_compile/T12734.hs
+++ b/testsuite/tests/typecheck/should_compile/T12734.hs
@@ -20,6 +20,7 @@
module T12734 where
import Prelude
+import Data.Kind
import Control.Applicative
import Control.Monad.Fix
import Control.Monad.Trans.Identity
@@ -30,14 +31,14 @@ import Control.Monad.IO.Class
data A
data B
data Net
-data Type
+data Ty
data Layer4 t l
data TermStore
-- Helpers: Stack
-data Stack layers (t :: * -> *) where
+data Stack layers (t :: Type -> Type) where
SLayer :: t l -> Stack ls t -> Stack (l ': ls) t
SNull :: Stack '[] t
@@ -57,28 +58,35 @@ type TermStack t layers = Stack layers (Layer4 (Expr t layers))
class Monad m => Constructor m t
instance ( Monad m, expr ~ Expr t layers, Constructor m (TermStack t layers)
- ) => Constructor m (Layer4 expr Type)
+ ) => Constructor m (Layer4 expr Ty)
--- HERE IS A FUNNY BEHAVIOR: the commented line raises context reduction stack overflow
-test_gr :: ( Constructor m (TermStack t layers), Inferable A layers m, Inferable B t m
- , bind ~ Expr t layers
--- ) => m (Expr t layers)
- ) => m bind
+-- HERE IS A FUNNY BEHAVIOR: the commented line raises context reduction stack
+-- overflow
+test_gr ::
+ ( Constructor m (TermStack t layers), Inferable A layers m, Inferable B t m
+ , bind ~ Expr t layers
+-- ) => m (Expr t layers)
+ ) => m bind
test_gr = undefined
-- Explicit information about a type which could be inferred
-class Monad m => Inferable (cls :: *) (t :: k) m | cls m -> t
+class Monad m => Inferable (cls :: Type) (t :: k) m | cls m -> t
-newtype KnownTypex (cls :: *) (t :: k) (m :: * -> *) (a :: *) = KnownTypex (IdentityT m a) deriving (Show, Functor, Monad, MonadIO, MonadFix, MonadTrans, Applicative, Alternative)
+newtype KnownTyx (cls :: Type) (t :: k) (m :: Type -> Type) (a :: Type) =
+ KnownTyx (IdentityT m a)
+ deriving (Show, Functor, Monad, MonadIO, MonadFix, MonadTrans,
+ Applicative, Alternative)
-instance {-# OVERLAPPABLE #-} (t ~ t', Monad m) => Inferable cls t (KnownTypex cls t' m)
-instance {-# OVERLAPPABLE #-} (Inferable cls t n, MonadTrans m, Monad (m n)) => Inferable cls t (m n)
+instance {-# OVERLAPPABLE #-} (t ~ t', Monad m) =>
+ Inferable cls t (KnownTyx cls t' m)
+instance {-# OVERLAPPABLE #-} (Inferable cls t n, MonadTrans m, Monad (m n)) =>
+ Inferable cls t (m n)
-runInferenceTx :: forall cls t m a. KnownTypex cls t m a -> m a
+runInferenceTx :: forall cls t m a. KnownTyx cls t m a -> m a
runInferenceTx = undefined
@@ -86,7 +94,7 @@ runInferenceTx = undefined
-- running it
test_ghc_err :: (MonadIO m, MonadFix m)
- => m (Expr Net '[Type])
+ => m (Expr Net '[Ty])
test_ghc_err = runInferenceTx @B @Net
- $ runInferenceTx @A @'[Type]
+ $ runInferenceTx @A @'[Ty]
$ (test_gr)
diff --git a/testsuite/tests/typecheck/should_compile/T12734a.hs b/testsuite/tests/typecheck/should_compile/T12734a.hs
index 3add59e648..5f1da8b818 100644
--- a/testsuite/tests/typecheck/should_compile/T12734a.hs
+++ b/testsuite/tests/typecheck/should_compile/T12734a.hs
@@ -21,6 +21,7 @@
module T12734a where
import Prelude
+import Data.Kind
import Control.Applicative
import Control.Monad.Fix
import Control.Monad.Trans.Identity
@@ -31,12 +32,12 @@ import Control.Monad.IO.Class
data A
data B
data Net
-data Type
+data Ty
data Layer4 t l
data TermStore
-data Stack lrs (t :: * -> *) where
+data Stack lrs (t :: Type -> Type) where
SLayer :: t l -> Stack ls t -> Stack (l ': ls) t
SNull :: Stack '[] t
@@ -44,7 +45,7 @@ instance ( Con m (t l)
, Con m (Stack ls t)) => Con m (Stack (l ': ls) t)
instance Monad m => Con m (Stack '[] t)
instance ( expr ~ Expr t lrs
- , Con m (TStk t lrs)) => Con m (Layer4 expr Type)
+ , Con m (TStk t lrs)) => Con m (Layer4 expr Ty)
newtype Expr t lrs = Expr (TStk t lrs)
@@ -63,18 +64,18 @@ test_gr :: forall m t lrs bind.
test_gr = undefined
-newtype KT (cls :: *) (t :: k) (m :: * -> *) (a :: *)
+newtype KT (cls :: Type) (t :: k) (m :: Type -> Type) (a :: Type)
= KT (IdentityT m a)
-test_ghc_err :: KT A '[Type] IO (Expr Net '[Type])
+test_ghc_err :: KT A '[Ty] IO (Expr Net '[Ty])
-test_ghc_err = test_gr @(KT A '[Type] IO) @_ @'[Type] @(Expr Net '[Type])
+test_ghc_err = test_gr @(KT A '[Ty] IO) @_ @'[Ty] @(Expr Net '[Ty])
{- Works!
-test_ghc_err = test_gr @(KT A '[Type] IO)
+test_ghc_err = test_gr @(KT A '[Ty] IO)
@Net
- @'[Type]
- @(Expr Net '[Type])
+ @'[Ty]
+ @(Expr Net '[Ty])
-}
{- Some notes. See comment:10 on Trac #12734
@@ -82,22 +83,22 @@ test_ghc_err = test_gr @(KT A '[Type] IO)
[W] Con m (TStk t lrs)
[W] Inferable A lrs m
[W] bind ~ Expr t lrs
-[W] m bind ~ KT A '[Type] IO (Expr Net '[Type])
+[W] m bind ~ KT A '[Ty] IO (Expr Net '[Ty])
-==> m := KT A '[Type] IO
- bind := Expr Net '[Type]
+==> m := KT A '[Ty] IO
+ bind := Expr Net '[Ty]
t := Net
- lrs := '[Type]
+ lrs := '[Ty]
[W] Con m (TStk t lrs)
= Con m (Stack lrs (Layer4 bind))
--> inline lrs
-[W] Con m (Stack '[Type] (Layer4 bind))
+[W] Con m (Stack '[Ty] (Layer4 bind))
--> instance
[W] Con m (Stack '[] bind)
--> Monad m
+
-[W] Con m (Layer4 bind Type)
+[W] Con m (Layer4 bind Ty)
-->
[W] bind ~ Expr t0 lrs0
[W] Con m (TStk t0 lrs0)
diff --git a/testsuite/tests/typecheck/should_compile/T12734a.stderr b/testsuite/tests/typecheck/should_compile/T12734a.stderr
index 737659fa57..8d777c6616 100644
--- a/testsuite/tests/typecheck/should_compile/T12734a.stderr
+++ b/testsuite/tests/typecheck/should_compile/T12734a.stderr
@@ -1,9 +1,8 @@
-T12734a.hs:71:16: error:
- • No instance for (Monad (KT A '[Type] IO))
+T12734a.hs:72:16: error:
+ • No instance for (Monad (KT A '[Ty] IO))
arising from a use of ‘test_gr’
• In the expression:
- test_gr @(KT A '[Type] IO) @_ @'[Type] @(Expr Net '[Type])
+ test_gr @(KT A '[Ty] IO) @_ @'[Ty] @(Expr Net '[Ty])
In an equation for ‘test_ghc_err’:
- test_ghc_err
- = test_gr @(KT A '[Type] IO) @_ @'[Type] @(Expr Net '[Type])
+ test_ghc_err = test_gr @(KT A '[Ty] IO) @_ @'[Ty] @(Expr Net '[Ty])
diff --git a/testsuite/tests/typecheck/should_compile/T12785a.hs b/testsuite/tests/typecheck/should_compile/T12785a.hs
index 1e4d6a1b64..3c3fa9aba5 100644
--- a/testsuite/tests/typecheck/should_compile/T12785a.hs
+++ b/testsuite/tests/typecheck/should_compile/T12785a.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeFamilies #-}
module T12785a where
diff --git a/testsuite/tests/typecheck/should_compile/T12911.hs b/testsuite/tests/typecheck/should_compile/T12911.hs
index 88c2125f2b..af3af3c5f3 100644
--- a/testsuite/tests/typecheck/should_compile/T12911.hs
+++ b/testsuite/tests/typecheck/should_compile/T12911.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE ExplicitForAll, TypeInType, GADTSyntax,
+{-# LANGUAGE ExplicitForAll, PolyKinds, GADTSyntax,
ExistentialQuantification #-}
module T12911 where
diff --git a/testsuite/tests/typecheck/should_compile/T12919.hs b/testsuite/tests/typecheck/should_compile/T12919.hs
index 1f77c1c8de..778abfa1e7 100644
--- a/testsuite/tests/typecheck/should_compile/T12919.hs
+++ b/testsuite/tests/typecheck/should_compile/T12919.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, TypeFamilies, GADTs, ConstraintKinds #-}
+{-# LANGUAGE DataKinds, PolyKinds, TypeFamilies, GADTs, ConstraintKinds #-}
module T12919 where
diff --git a/testsuite/tests/typecheck/should_compile/T12987.hs b/testsuite/tests/typecheck/should_compile/T12987.hs
index 0997985601..3341272df9 100644
--- a/testsuite/tests/typecheck/should_compile/T12987.hs
+++ b/testsuite/tests/typecheck/should_compile/T12987.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T12987 where
diff --git a/testsuite/tests/typecheck/should_compile/T13083.hs b/testsuite/tests/typecheck/should_compile/T13083.hs
index 220da0855a..e294052309 100644
--- a/testsuite/tests/typecheck/should_compile/T13083.hs
+++ b/testsuite/tests/typecheck/should_compile/T13083.hs
@@ -8,11 +8,12 @@
module T13083 where
+import Data.Kind
import GHC.Generics (Par1(..),(:*:)(..))
import GHC.Exts (coerce)
-- Representation as free vector space
-type family V (a :: *) :: * -> *
+type family V (a :: Type) :: Type -> Type
type instance V R = Par1
type instance V (a,b) = V a :*: V b
@@ -59,7 +60,7 @@ foo = coerce
-- with that of ‘Par1’
-- arising from a use of ‘coerce’
--- Note that Par1 has the wrong kind (* -> *) for V Par1
+-- Note that Par1 has the wrong kind (Type -> Type) for V Par1
-- Same error:
--
diff --git a/testsuite/tests/typecheck/should_compile/T13333.hs b/testsuite/tests/typecheck/should_compile/T13333.hs
index fba64cede0..5aca099c3b 100644
--- a/testsuite/tests/typecheck/should_compile/T13333.hs
+++ b/testsuite/tests/typecheck/should_compile/T13333.hs
@@ -4,7 +4,7 @@
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module T13333 where
diff --git a/testsuite/tests/typecheck/should_compile/T13337.hs b/testsuite/tests/typecheck/should_compile/T13337.hs
index 39808b4f13..3448d9448a 100644
--- a/testsuite/tests/typecheck/should_compile/T13337.hs
+++ b/testsuite/tests/typecheck/should_compile/T13337.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, ScopedTypeVariables, TypeOperators, GADTs #-}
+{-# LANGUAGE PolyKinds, ScopedTypeVariables, TypeOperators, GADTs #-}
{-# OPTIONS_GHC -Wno-overlapping-patterns #-} -- don't want erroneous warning in test output
-- if removing this doesn't change output, then
-- remove it!
diff --git a/testsuite/tests/typecheck/should_compile/T13343.hs b/testsuite/tests/typecheck/should_compile/T13343.hs
index a00655d5ef..fcff9db1a4 100644
--- a/testsuite/tests/typecheck/should_compile/T13343.hs
+++ b/testsuite/tests/typecheck/should_compile/T13343.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module Bug where
import GHC.Exts
diff --git a/testsuite/tests/typecheck/should_compile/T13458.hs b/testsuite/tests/typecheck/should_compile/T13458.hs
index 9b51378d65..ef1f568769 100644
--- a/testsuite/tests/typecheck/should_compile/T13458.hs
+++ b/testsuite/tests/typecheck/should_compile/T13458.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE MagicHash, TypeInType, ScopedTypeVariables #-}
+{-# LANGUAGE MagicHash, PolyKinds, ScopedTypeVariables #-}
{-# OPTIONS_GHC -O #-}
module T13458 where
import GHC.Exts
diff --git a/testsuite/tests/typecheck/should_compile/T13603.hs b/testsuite/tests/typecheck/should_compile/T13603.hs
index d0c1975e04..bcbed465b0 100644
--- a/testsuite/tests/typecheck/should_compile/T13603.hs
+++ b/testsuite/tests/typecheck/should_compile/T13603.hs
@@ -1,4 +1,4 @@
-{-# Language PolyKinds, TypeInType, UndecidableInstances #-}
+{-# Language PolyKinds, UndecidableInstances #-}
module T13603 where
import GHC.Exts (TYPE, RuntimeRep)
diff --git a/testsuite/tests/typecheck/should_compile/T13643.hs b/testsuite/tests/typecheck/should_compile/T13643.hs
index d7cf1342c8..68e7225bf8 100644
--- a/testsuite/tests/typecheck/should_compile/T13643.hs
+++ b/testsuite/tests/typecheck/should_compile/T13643.hs
@@ -2,7 +2,7 @@
{-# Language RankNTypes #-}
{-# Language KindSignatures #-}
{-# Language DataKinds #-}
-{-# Language TypeInType #-}
+{-# Language PolyKinds #-}
{-# Language GADTs #-}
import Data.Kind (Type)
diff --git a/testsuite/tests/typecheck/should_compile/T13822.hs b/testsuite/tests/typecheck/should_compile/T13822.hs
index 5837cc8081..88c14c2aff 100644
--- a/testsuite/tests/typecheck/should_compile/T13822.hs
+++ b/testsuite/tests/typecheck/should_compile/T13822.hs
@@ -1,4 +1,5 @@
-{-# LANGUAGE GADTs, TypeOperators, PolyKinds, DataKinds, TypeFamilyDependencies, TypeInType, RankNTypes, LambdaCase, EmptyCase #-}
+{-# LANGUAGE GADTs, TypeOperators, PolyKinds, DataKinds,
+ TypeFamilyDependencies, RankNTypes, LambdaCase, EmptyCase #-}
module T13822 where
diff --git a/testsuite/tests/typecheck/should_compile/T13871.hs b/testsuite/tests/typecheck/should_compile/T13871.hs
index 319d949647..623923eaca 100644
--- a/testsuite/tests/typecheck/should_compile/T13871.hs
+++ b/testsuite/tests/typecheck/should_compile/T13871.hs
@@ -1,7 +1,7 @@
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module Foo where
diff --git a/testsuite/tests/typecheck/should_compile/T13879.hs b/testsuite/tests/typecheck/should_compile/T13879.hs
index 9708c1dd41..2e10c472fb 100644
--- a/testsuite/tests/typecheck/should_compile/T13879.hs
+++ b/testsuite/tests/typecheck/should_compile/T13879.hs
@@ -2,7 +2,7 @@
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
{-# LANGUAGE TypeOperators #-}
module Bug where
diff --git a/testsuite/tests/typecheck/should_compile/T13915a.hs b/testsuite/tests/typecheck/should_compile/T13915a.hs
index 484c9dedc0..355166b8a0 100644
--- a/testsuite/tests/typecheck/should_compile/T13915a.hs
+++ b/testsuite/tests/typecheck/should_compile/T13915a.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module Bug where
import T13915a_Foo
diff --git a/testsuite/tests/typecheck/should_compile/T13915b.hs b/testsuite/tests/typecheck/should_compile/T13915b.hs
index dd64b13d4f..8949a86f06 100644
--- a/testsuite/tests/typecheck/should_compile/T13915b.hs
+++ b/testsuite/tests/typecheck/should_compile/T13915b.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
module Foo where
import Data.Typeable (Proxy(..), typeRep)
diff --git a/testsuite/tests/typecheck/should_compile/T13943.hs b/testsuite/tests/typecheck/should_compile/T13943.hs
index f40ee237e6..7889fe6a41 100644
--- a/testsuite/tests/typecheck/should_compile/T13943.hs
+++ b/testsuite/tests/typecheck/should_compile/T13943.hs
@@ -5,7 +5,7 @@
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE TypeApplications #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds, DataKinds #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE GADTs #-}
diff --git a/testsuite/tests/typecheck/should_compile/T14441.hs b/testsuite/tests/typecheck/should_compile/T14441.hs
index 047de1659f..a2c1aff9ef 100644
--- a/testsuite/tests/typecheck/should_compile/T14441.hs
+++ b/testsuite/tests/typecheck/should_compile/T14441.hs
@@ -1,6 +1,7 @@
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE PolyKinds #-}
module T14441 where
import Data.Kind
diff --git a/testsuite/tests/typecheck/should_compile/T14934a.hs b/testsuite/tests/typecheck/should_compile/T14934a.hs
index 3ba59ff976..3a4865fffc 100644
--- a/testsuite/tests/typecheck/should_compile/T14934a.hs
+++ b/testsuite/tests/typecheck/should_compile/T14934a.hs
@@ -4,9 +4,10 @@
{-# LANGUAGE TypeOperators #-}
module T14934a where
+import Data.Kind (Type)
import GHC.TypeLits
-data Foo :: Nat -> * where
+data Foo :: Nat -> Type where
MkFoo0 :: Foo 0
MkFoo1 :: Foo 1
diff --git a/testsuite/tests/typecheck/should_compile/all.T b/testsuite/tests/typecheck/should_compile/all.T
index f566182cc2..8a7a7da8ce 100644
--- a/testsuite/tests/typecheck/should_compile/all.T
+++ b/testsuite/tests/typecheck/should_compile/all.T
@@ -579,8 +579,8 @@ test('T13848', normal, compile, [''])
test('T13871', normal, compile, [''])
test('T13879', normal, compile, [''])
test('T13881', normal, compile, [''])
-test('T13915a', normal, multimod_compile, ['T13915a', '-v0'])
-test('T13915b', normal, compile, [''])
+test('T13915a', expect_broken(15245), multimod_compile, ['T13915a', '-v0'])
+test('T13915b', expect_broken(15245), compile, [''])
test('T13984', normal, compile, [''])
test('T14128', normal, multimod_compile, ['T14128Main', '-v0'])
test('T14149', normal, compile_fail, [''])
diff --git a/testsuite/tests/typecheck/should_compile/tc191.hs b/testsuite/tests/typecheck/should_compile/tc191.hs
index 403ec88da9..c7a7c3e4c6 100644
--- a/testsuite/tests/typecheck/should_compile/tc191.hs
+++ b/testsuite/tests/typecheck/should_compile/tc191.hs
@@ -1,4 +1,4 @@
-
+{-# LANGUAGE RankNTypes #-}
-- This only typechecks if forall-hoisting works ok when
-- importing from an interface file. The type of Twins.gzipWithQ
diff --git a/testsuite/tests/typecheck/should_compile/tc205.hs b/testsuite/tests/typecheck/should_compile/tc205.hs
index 1fe2cc255f..e45660fb3a 100644
--- a/testsuite/tests/typecheck/should_compile/tc205.hs
+++ b/testsuite/tests/typecheck/should_compile/tc205.hs
@@ -4,7 +4,9 @@
module ShouldCompile where
+import Data.Kind
+
infix 1 `DArrowX` -- (->) has precedence 0
-data DArrowX :: * -> * -> * where
+data DArrowX :: Type -> Type -> Type where
First :: a `DArrowX` a' -> (a,b) `DArrowX` (a',b)
diff --git a/testsuite/tests/typecheck/should_compile/tc269.hs b/testsuite/tests/typecheck/should_compile/tc269.hs
index 33151cebe8..3ac88ce8e9 100644
--- a/testsuite/tests/typecheck/should_compile/tc269.hs
+++ b/testsuite/tests/typecheck/should_compile/tc269.hs
@@ -1,6 +1,5 @@
{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE KindSignatures #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module Tc269 where
import GHC.Types
diff --git a/testsuite/tests/typecheck/should_compile/valid_hole_fits_interactions.hs b/testsuite/tests/typecheck/should_compile/valid_hole_fits_interactions.hs
index a2186e73a3..069e1f7384 100644
--- a/testsuite/tests/typecheck/should_compile/valid_hole_fits_interactions.hs
+++ b/testsuite/tests/typecheck/should_compile/valid_hole_fits_interactions.hs
@@ -1,5 +1,5 @@
{-# LANGUAGE GADTs #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
module ValidSubsInteractions where
diff --git a/testsuite/tests/typecheck/should_fail/ClassOperator.hs b/testsuite/tests/typecheck/should_fail/ClassOperator.hs
index 6d41d113fb..922cbdb0f4 100644
--- a/testsuite/tests/typecheck/should_fail/ClassOperator.hs
+++ b/testsuite/tests/typecheck/should_fail/ClassOperator.hs
@@ -2,9 +2,11 @@
module ClassOperator where
+import Data.Kind
+
-- | Class with fixity, including associated types
class a ><> b where
- type a <>< b :: *
+ type a <>< b :: Type
data a ><< b
(>><), (<<>) :: a -> b -> ()
diff --git a/testsuite/tests/typecheck/should_fail/ClassOperator.stderr b/testsuite/tests/typecheck/should_fail/ClassOperator.stderr
index bc4eb7c598..78017f22ba 100644
--- a/testsuite/tests/typecheck/should_fail/ClassOperator.stderr
+++ b/testsuite/tests/typecheck/should_fail/ClassOperator.stderr
@@ -1,10 +1,10 @@
-ClassOperator.hs:12:3: error:
+ClassOperator.hs:14:3: error:
• Could not deduce (a ><> b0)
from the context: a ><> b
bound by the type signature for:
(**>) :: forall a b. (a ><> b) => a -> a -> ()
- at ClassOperator.hs:12:3-44
+ at ClassOperator.hs:14:3-44
The type variable ‘b0’ is ambiguous
• In the ambiguity check for ‘**>’
To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
@@ -12,12 +12,12 @@ ClassOperator.hs:12:3: error:
(**>) :: forall a b. (a ><> b) => a -> a -> ()
In the class declaration for ‘><>’
-ClassOperator.hs:12:3: error:
+ClassOperator.hs:14:3: error:
• Could not deduce (a ><> b0)
from the context: a ><> b
bound by the type signature for:
(**<) :: forall a b. (a ><> b) => a -> a -> ()
- at ClassOperator.hs:12:3-44
+ at ClassOperator.hs:14:3-44
The type variable ‘b0’ is ambiguous
• In the ambiguity check for ‘**<’
To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
@@ -25,12 +25,12 @@ ClassOperator.hs:12:3: error:
(**<) :: forall a b. (a ><> b) => a -> a -> ()
In the class declaration for ‘><>’
-ClassOperator.hs:12:3: error:
+ClassOperator.hs:14:3: error:
• Could not deduce (a ><> b0)
from the context: a ><> b
bound by the type signature for:
(>**) :: forall a b. (a ><> b) => a -> a -> ()
- at ClassOperator.hs:12:3-44
+ at ClassOperator.hs:14:3-44
The type variable ‘b0’ is ambiguous
• In the ambiguity check for ‘>**’
To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
@@ -38,12 +38,12 @@ ClassOperator.hs:12:3: error:
(>**) :: forall a b. (a ><> b) => a -> a -> ()
In the class declaration for ‘><>’
-ClassOperator.hs:12:3: error:
+ClassOperator.hs:14:3: error:
• Could not deduce (a ><> b0)
from the context: a ><> b
bound by the type signature for:
(<**) :: forall a b. (a ><> b) => a -> a -> ()
- at ClassOperator.hs:12:3-44
+ at ClassOperator.hs:14:3-44
The type variable ‘b0’ is ambiguous
• In the ambiguity check for ‘<**’
To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
diff --git a/testsuite/tests/typecheck/should_fail/CustomTypeErrors04.hs b/testsuite/tests/typecheck/should_fail/CustomTypeErrors04.hs
index d1957bf34b..298668f213 100644
--- a/testsuite/tests/typecheck/should_fail/CustomTypeErrors04.hs
+++ b/testsuite/tests/typecheck/should_fail/CustomTypeErrors04.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, TypeFamilies, UndecidableInstances #-}
+{-# LANGUAGE DataKinds, TypeFamilies, UndecidableInstances #-}
{-# LANGUAGE UndecidableInstances #-}
-- The "bad case" in #11391
diff --git a/testsuite/tests/typecheck/should_fail/CustomTypeErrors05.hs b/testsuite/tests/typecheck/should_fail/CustomTypeErrors05.hs
index 5a15b6f363..7d200faef6 100644
--- a/testsuite/tests/typecheck/should_fail/CustomTypeErrors05.hs
+++ b/testsuite/tests/typecheck/should_fail/CustomTypeErrors05.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, TypeFamilies, UndecidableInstances #-}
+{-# LANGUAGE DataKinds, TypeFamilies, UndecidableInstances #-}
{-# LANGUAGE UndecidableInstances #-}
-- The "tricky case" in #11391
diff --git a/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs b/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs
index 0607956784..0a68a69a38 100644
--- a/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs
+++ b/testsuite/tests/typecheck/should_fail/LevPolyBounded.hs
@@ -1,6 +1,6 @@
-- inspired by comment:25 on #12708
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module LevPolyBounded where
diff --git a/testsuite/tests/typecheck/should_fail/T11313.hs b/testsuite/tests/typecheck/should_fail/T11313.hs
index 86ac9582b8..68aa5b0f6c 100644
--- a/testsuite/tests/typecheck/should_fail/T11313.hs
+++ b/testsuite/tests/typecheck/should_fail/T11313.hs
@@ -2,8 +2,6 @@
module T11313 where
-import Data.Kind
-
x = fmap @ (*)
-- test error message output, which was quite silly before
diff --git a/testsuite/tests/typecheck/should_fail/T11313.stderr b/testsuite/tests/typecheck/should_fail/T11313.stderr
index 7a681d17aa..8697d3b6c7 100644
--- a/testsuite/tests/typecheck/should_fail/T11313.stderr
+++ b/testsuite/tests/typecheck/should_fail/T11313.stderr
@@ -1,6 +1,6 @@
-T11313.hs:7:12: error:
+T11313.hs:5:13: error:
• Expected kind ‘* -> *’, but ‘*’ has kind ‘*’
- • In the type ‘*’
- In the expression: fmap @*
- In an equation for ‘x’: x = fmap @*
+ • In the type ‘(*)’
+ In the expression: fmap @(*)
+ In an equation for ‘x’: x = fmap @(*)
diff --git a/testsuite/tests/typecheck/should_fail/T11724.hs b/testsuite/tests/typecheck/should_fail/T11724.hs
index df575bd9b5..23412e9df9 100644
--- a/testsuite/tests/typecheck/should_fail/T11724.hs
+++ b/testsuite/tests/typecheck/should_fail/T11724.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T11724 where
diff --git a/testsuite/tests/typecheck/should_fail/T11963.hs b/testsuite/tests/typecheck/should_fail/T11963.hs
deleted file mode 100644
index c4f78aee29..0000000000
--- a/testsuite/tests/typecheck/should_fail/T11963.hs
+++ /dev/null
@@ -1,29 +0,0 @@
-{-# LANGUAGE GADTs, PolyKinds, RankNTypes #-}
-
-module T11963 where
-
--- this module should be rejected without TypeInType
-
-import Data.Proxy
-
--- see code in RnTypes.extract_hs_tv_bndrs which checks for these bad cases
-
- -- bndr_kvs vs body_tvs
-data Typ k t where
- Typ :: (forall (a :: k -> *). a t -> a t) -> Typ k t
-
- -- bndr_kvs vs acc_tvs
-foo :: (forall (t :: k). Proxy t) -> Proxy k
-foo _ = undefined
-
- -- locals vs body_kvs
-bar :: forall k. forall (t :: k). Proxy t
-bar = undefined
-
- -- body_kvs vs acc_tvs
-quux :: (forall t. Proxy (t :: k)) -> Proxy k
-quux _ = undefined
-
- -- body_tvs vs acc_kvs
-blargh :: (forall a. a -> Proxy k) -> Proxy (t :: k)
-blargh _ = undefined
diff --git a/testsuite/tests/typecheck/should_fail/T11963.stderr b/testsuite/tests/typecheck/should_fail/T11963.stderr
deleted file mode 100644
index bd1ae4dc76..0000000000
--- a/testsuite/tests/typecheck/should_fail/T11963.stderr
+++ /dev/null
@@ -1,20 +0,0 @@
-
-T11963.hs:13:26: error:
- Variable ‘k’ used as both a kind and a type
- Did you intend to use TypeInType?
-
-T11963.hs:16:22: error:
- Variable ‘k’ used as both a kind and a type
- Did you intend to use TypeInType?
-
-T11963.hs:20:31: error:
- Variable ‘k’ used as both a kind and a type
- Did you intend to use TypeInType?
-
-T11963.hs:24:32: error:
- Variable ‘k’ used as both a kind and a type
- Did you intend to use TypeInType?
-
-T11963.hs:28:51: error:
- Variable ‘k’ used as both a kind and a type
- Did you intend to use TypeInType?
diff --git a/testsuite/tests/typecheck/should_fail/T12648.hs b/testsuite/tests/typecheck/should_fail/T12648.hs
index b36ecce3bc..b75bcf9226 100644
--- a/testsuite/tests/typecheck/should_fail/T12648.hs
+++ b/testsuite/tests/typecheck/should_fail/T12648.hs
@@ -13,7 +13,7 @@
{-# LANGUAGE UndecidableSuperClasses #-}
module T12648 where
-import GHC.Exts (Constraint)
+import Data.Kind (Type, Constraint)
import Unsafe.Coerce (unsafeCoerce)
type family Skolem (p :: k -> Constraint) :: k
@@ -25,7 +25,7 @@ instance p (Skolem p) => Forall_ (p :: k -> Constraint)
inst :: forall p a. Forall p :- p a
inst = unsafeCoerce (Sub Dict :: Forall p :- p (Skolem p))
-data Dict :: Constraint -> * where
+data Dict :: Constraint -> Type where
Dict :: a => Dict a
newtype a :- b = Sub (a => Dict b)
@@ -40,7 +40,7 @@ class (Applicative b, Applicative m, Monad b, Monad m) => MonadBase b m | m -> b
instance MonadBase IO IO -- where liftBase = id
class MonadBase b m => MonadBaseControl b m | m -> b where
- type StM m a :: *
+ type StM m a :: Type
liftBaseWith :: (RunInBase m b -> b a) -> m a
type RunInBase m b = forall a. m a -> b (StM m a)
diff --git a/testsuite/tests/typecheck/should_fail/T12709.hs b/testsuite/tests/typecheck/should_fail/T12709.hs
index 2bbcf744d0..6a7e37a5d2 100644
--- a/testsuite/tests/typecheck/should_fail/T12709.hs
+++ b/testsuite/tests/typecheck/should_fail/T12709.hs
@@ -1,4 +1,5 @@
-{-# Language MagicHash, PolyKinds, ViewPatterns, TypeInType, RebindableSyntax, NoImplicitPrelude #-}
+{-# Language PolyKinds, ViewPatterns, RebindableSyntax,
+ MagicHash, NoImplicitPrelude #-}
module T12709 where
diff --git a/testsuite/tests/typecheck/should_fail/T12709.stderr b/testsuite/tests/typecheck/should_fail/T12709.stderr
index 7be861c061..9d79d8dd0c 100644
--- a/testsuite/tests/typecheck/should_fail/T12709.stderr
+++ b/testsuite/tests/typecheck/should_fail/T12709.stderr
@@ -1,23 +1,23 @@
-T12709.hs:27:13: error:
+T12709.hs:28:13: error:
A levity-polymorphic type is not allowed here:
Type: a
Kind: TYPE rep
In the type of expression: 1
-T12709.hs:27:17: error:
+T12709.hs:28:17: error:
A levity-polymorphic type is not allowed here:
Type: a
Kind: TYPE rep
In the type of expression: 2
-T12709.hs:27:21: error:
+T12709.hs:28:21: error:
A levity-polymorphic type is not allowed here:
Type: a
Kind: TYPE rep
In the type of expression: 3
-T12709.hs:27:25: error:
+T12709.hs:28:25: error:
A levity-polymorphic type is not allowed here:
Type: a
Kind: TYPE rep
diff --git a/testsuite/tests/typecheck/should_fail/T12785b.hs b/testsuite/tests/typecheck/should_fail/T12785b.hs
index 4188e3e67c..b827372bf0 100644
--- a/testsuite/tests/typecheck/should_fail/T12785b.hs
+++ b/testsuite/tests/typecheck/should_fail/T12785b.hs
@@ -1,6 +1,6 @@
-{-# LANGUAGE RankNTypes, TypeInType, TypeOperators, KindSignatures, ViewPatterns #-}
+{-# LANGUAGE RankNTypes, TypeOperators, ViewPatterns #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE DataKinds, GADTs #-}
+{-# LANGUAGE DataKinds, PolyKinds, GADTs #-}
module T12785b where
@@ -13,14 +13,14 @@ data HTree n a where
Leaf :: HTree (S n) a
Branch :: a -> HTree n (HTree (S n) a) -> HTree (S n) a
-data STree n :: forall a . (a -> *) -> HTree n a -> * where
+data STree n :: forall a . (a -> Type) -> HTree n a -> Type where
SPoint :: f a -> STree Z f (Point a)
SLeaf :: STree (S n) f Leaf
SBranch :: f a -> STree n (STree (S n) f) stru -> STree (S n) f (a `Branch` stru)
SBranchX :: (Payload (S n) (Payload n stru) ~ a)
=> f a -> STree n (STree (S n) f) stru -> STree (S n) f (a `Branch` stru)
-data Hidden :: Peano -> (a -> *) -> * where
+data Hidden :: Peano -> (a -> Type) -> Type where
Hide :: STree n f s -> Hidden n f
nest :: HTree m (Hidden (S m) f) -> Hidden m (STree ('S m) f)
diff --git a/testsuite/tests/typecheck/should_fail/T12973.hs b/testsuite/tests/typecheck/should_fail/T12973.hs
index 624d24be24..b0a33a8213 100644
--- a/testsuite/tests/typecheck/should_fail/T12973.hs
+++ b/testsuite/tests/typecheck/should_fail/T12973.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE RebindableSyntax, TypeInType, ExplicitForAll #-}
+{-# LANGUAGE RebindableSyntax, PolyKinds, ExplicitForAll #-}
module T12973 where
diff --git a/testsuite/tests/typecheck/should_fail/T13105.hs b/testsuite/tests/typecheck/should_fail/T13105.hs
index 44384dc19d..b2b23c7442 100644
--- a/testsuite/tests/typecheck/should_fail/T13105.hs
+++ b/testsuite/tests/typecheck/should_fail/T13105.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE UnicodeSyntax, MagicHash, TypeInType, TypeFamilies #-}
+{-# LANGUAGE UnicodeSyntax, MagicHash, DataKinds, PolyKinds, TypeFamilies #-}
-- from Conal Elliott
-- Actually, this *should* work. But I want to put it in the testsuite
diff --git a/testsuite/tests/typecheck/should_fail/T13446.hs b/testsuite/tests/typecheck/should_fail/T13446.hs
index 11a60776f6..b5bd77fcb0 100644
--- a/testsuite/tests/typecheck/should_fail/T13446.hs
+++ b/testsuite/tests/typecheck/should_fail/T13446.hs
@@ -11,10 +11,10 @@
module T13446 where
import Data.Coerce (Coercible)
-import GHC.Exts (Constraint)
+import Data.Kind (Type, Constraint)
import GHC.TypeLits (Symbol)
-data Dict :: Constraint -> * where
+data Dict :: Constraint -> Type where
Dict :: a => Dict a
infixr 9 :-
diff --git a/testsuite/tests/typecheck/should_fail/T13909.hs b/testsuite/tests/typecheck/should_fail/T13909.hs
index 4f0cbdc8b1..58798d5f79 100644
--- a/testsuite/tests/typecheck/should_fail/T13909.hs
+++ b/testsuite/tests/typecheck/should_fail/T13909.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T13909 where
import Data.Kind
diff --git a/testsuite/tests/typecheck/should_fail/T13929.hs b/testsuite/tests/typecheck/should_fail/T13929.hs
index 10a7430eee..f0801e8e0e 100644
--- a/testsuite/tests/typecheck/should_fail/T13929.hs
+++ b/testsuite/tests/typecheck/should_fail/T13929.hs
@@ -1,6 +1,6 @@
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE DeriveGeneric #-}
diff --git a/testsuite/tests/typecheck/should_fail/T13983.stderr b/testsuite/tests/typecheck/should_fail/T13983.stderr
index 65ce607961..5c7a031654 100644
--- a/testsuite/tests/typecheck/should_fail/T13983.stderr
+++ b/testsuite/tests/typecheck/should_fail/T13983.stderr
@@ -3,6 +3,6 @@ T13983.hs:7:1: error:
• Kind variable ‘k’ is implicitly bound in type synonym
‘Wat’, but does not appear as the kind of any
of its type variables. Perhaps you meant
- to bind it (with TypeInType) explicitly somewhere?
+ to bind it explicitly somewhere?
Type variables with inferred kinds: (k :: *)
• In the type declaration for ‘Wat’
diff --git a/testsuite/tests/typecheck/should_fail/T14350.hs b/testsuite/tests/typecheck/should_fail/T14350.hs
index b3de40f647..9d96e4570e 100644
--- a/testsuite/tests/typecheck/should_fail/T14350.hs
+++ b/testsuite/tests/typecheck/should_fail/T14350.hs
@@ -5,7 +5,7 @@
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds, DataKinds #-}
{-# LANGUAGE TypeOperators #-}
module T14350 where
diff --git a/testsuite/tests/typecheck/should_fail/T14904a.hs b/testsuite/tests/typecheck/should_fail/T14904a.hs
index 654f5a6618..af4cf65a33 100644
--- a/testsuite/tests/typecheck/should_fail/T14904a.hs
+++ b/testsuite/tests/typecheck/should_fail/T14904a.hs
@@ -1,6 +1,6 @@
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T14904a where
import Data.Kind
diff --git a/testsuite/tests/typecheck/should_fail/T14904b.hs b/testsuite/tests/typecheck/should_fail/T14904b.hs
index d8cfa1ea07..529b273245 100644
--- a/testsuite/tests/typecheck/should_fail/T14904b.hs
+++ b/testsuite/tests/typecheck/should_fail/T14904b.hs
@@ -1,6 +1,6 @@
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
module T14904b where
import Data.Kind
diff --git a/testsuite/tests/typecheck/should_fail/T7645.hs b/testsuite/tests/typecheck/should_fail/T7645.hs
index db086c8e61..b7a2af4ebd 100644
--- a/testsuite/tests/typecheck/should_fail/T7645.hs
+++ b/testsuite/tests/typecheck/should_fail/T7645.hs
@@ -1,8 +1,10 @@
{-# LANGUAGE TypeOperators, KindSignatures #-}
module T7645 where
+import Data.Kind
+
data (+) a b = P
-f :: ((+) a (a :: *), Maybe)
+f :: ((+) a (a :: Type), Maybe)
f = undefined
diff --git a/testsuite/tests/typecheck/should_fail/T7645.stderr b/testsuite/tests/typecheck/should_fail/T7645.stderr
index 1b3fe0ad76..24330b2aeb 100644
--- a/testsuite/tests/typecheck/should_fail/T7645.stderr
+++ b/testsuite/tests/typecheck/should_fail/T7645.stderr
@@ -1,6 +1,5 @@
-T7645.hs:6:23: error:
+T7645.hs:8:26: error:
• Expecting one more argument to ‘Maybe’
Expected a type, but ‘Maybe’ has kind ‘* -> *’
- • In the type signature:
- f :: ((+) a (a :: *), Maybe)
+ • In the type signature: f :: ((+) a (a :: Type), Maybe)
diff --git a/testsuite/tests/typecheck/should_fail/all.T b/testsuite/tests/typecheck/should_fail/all.T
index 3a7f2c415b..6a0012700f 100644
--- a/testsuite/tests/typecheck/should_fail/all.T
+++ b/testsuite/tests/typecheck/should_fail/all.T
@@ -453,7 +453,6 @@ test('T13610', normal, compile_fail, [''])
test('T11672', normal, compile_fail, [''])
test('T13819', normal, compile_fail, [''])
test('T13902', normal, compile_fail, [''])
-test('T11963', normal, compile_fail, [''])
test('T14000', normal, compile_fail, [''])
test('T14055', normal, compile_fail, [''])
test('T13909', normal, compile_fail, [''])
diff --git a/testsuite/tests/typecheck/should_run/EtaExpandLevPoly.hs b/testsuite/tests/typecheck/should_run/EtaExpandLevPoly.hs
index e912411209..d57d2e1499 100644
--- a/testsuite/tests/typecheck/should_run/EtaExpandLevPoly.hs
+++ b/testsuite/tests/typecheck/should_run/EtaExpandLevPoly.hs
@@ -1,5 +1,5 @@
-{-# LANGUAGE UnboxedTuples, MagicHash, GADTs, TypeInType, ExplicitForAll #-}
-
+{-# LANGUAGE UnboxedTuples, MagicHash, GADTs,
+ DataKinds, PolyKinds, ExplicitForAll #-}
module Main where
diff --git a/testsuite/tests/typecheck/should_run/KindInvariant.script b/testsuite/tests/typecheck/should_run/KindInvariant.script
index a993d515c5..34f6be361e 100644
--- a/testsuite/tests/typecheck/should_run/KindInvariant.script
+++ b/testsuite/tests/typecheck/should_run/KindInvariant.script
@@ -1,12 +1,12 @@
-:set -XTypeInType -XDataKinds -XKindSignatures -XMagicHash -XPolyKinds
+:set -XDataKinds -XKindSignatures -XMagicHash -XPolyKinds
:m + Data.Kind GHC.Exts
data T (a :: k -> k')
:kind T State#
-data T (a :: * -> k')
+data T (a :: Type -> k')
:kind T State#
-- this should fail
-data T (a :: * -> *)
+data T (a :: Type -> Type)
:kind T State#
diff --git a/testsuite/tests/typecheck/should_run/T11120.hs b/testsuite/tests/typecheck/should_run/T11120.hs
index f42e8cd5c0..5b5d7f343c 100644
--- a/testsuite/tests/typecheck/should_run/T11120.hs
+++ b/testsuite/tests/typecheck/should_run/T11120.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, MagicHash, DataKinds #-}
+{-# LANGUAGE MagicHash, DataKinds #-}
-- See also TypeOf.hs
import GHC.Prim
diff --git a/testsuite/tests/typecheck/should_run/T12809.hs b/testsuite/tests/typecheck/should_run/T12809.hs
index 9f6da26d76..66031a5af7 100644
--- a/testsuite/tests/typecheck/should_run/T12809.hs
+++ b/testsuite/tests/typecheck/should_run/T12809.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType, ExplicitForAll, MagicHash, UnboxedTuples,
+{-# LANGUAGE DataKinds, PolyKinds, ExplicitForAll, MagicHash, UnboxedTuples,
TypeFamilies, GADTs #-}
module Main where
diff --git a/testsuite/tests/typecheck/should_run/T13435.hs b/testsuite/tests/typecheck/should_run/T13435.hs
index 95ee946fa0..bc02f17b4c 100644
--- a/testsuite/tests/typecheck/should_run/T13435.hs
+++ b/testsuite/tests/typecheck/should_run/T13435.hs
@@ -1,4 +1,5 @@
-{-# Language FlexibleInstances, TypeFamilies, TypeInType, MagicHash #-}
+{-# Language FlexibleInstances, TypeFamilies,
+ DataKinds, PolyKinds, MagicHash #-}
module Main where
diff --git a/testsuite/tests/typecheck/should_run/TypeOf.hs b/testsuite/tests/typecheck/should_run/TypeOf.hs
index 59ea6fdf0d..11601a9a89 100644
--- a/testsuite/tests/typecheck/should_run/TypeOf.hs
+++ b/testsuite/tests/typecheck/should_run/TypeOf.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DataKinds, UnicodeSyntax #-}
import Data.Typeable
import GHC.Types
diff --git a/testsuite/tests/typecheck/should_run/TypeRep.hs b/testsuite/tests/typecheck/should_run/TypeRep.hs
index 002e4fbac0..43d774a6b5 100644
--- a/testsuite/tests/typecheck/should_run/TypeRep.hs
+++ b/testsuite/tests/typecheck/should_run/TypeRep.hs
@@ -1,13 +1,15 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE ConstraintKinds #-}
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE UnboxedTuples #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE StarIsType #-}
+{-# LANGUAGE UnicodeSyntax #-}
import Data.Typeable
import Data.Kind
diff --git a/testsuite/tests/unboxedsums/sum_rr.hs b/testsuite/tests/unboxedsums/sum_rr.hs
index 5f799fe481..448a9b2221 100644
--- a/testsuite/tests/unboxedsums/sum_rr.hs
+++ b/testsuite/tests/unboxedsums/sum_rr.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeInType #-}
+{-# LANGUAGE DataKinds, PolyKinds #-}
module Example where