... | @@ -25,89 +25,89 @@ Use Keyword = `TypeInType` to ensure that a ticket ends up on these lists. |
... | @@ -25,89 +25,89 @@ Use Keyword = `TypeInType` to ensure that a ticket ends up on these lists. |
|
|
|
|
|
Open Tickets:
|
|
Open Tickets:
|
|
|
|
|
|
<table><tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/7503">#7503</a></th>
|
|
<table><tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/7503">#7503</a></th>
|
|
<td>Bug with PolyKinds, type synonyms & GADTs</td></tr>
|
|
<td>Bug with PolyKinds, type synonyms & GADTs</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/10141">#10141</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/10141">#10141</a></th>
|
|
<td>CUSK mysteries</td></tr>
|
|
<td>CUSK mysteries</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11196">#11196</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11196">#11196</a></th>
|
|
<td>TypeInType performance regressions</td></tr>
|
|
<td>TypeInType performance regressions</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11197">#11197</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11197">#11197</a></th>
|
|
<td>Overeager deferred type errors</td></tr>
|
|
<td>Overeager deferred type errors</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11198">#11198</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11198">#11198</a></th>
|
|
<td>TypeInType error message regressions</td></tr>
|
|
<td>TypeInType error message regressions</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11962">#11962</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11962">#11962</a></th>
|
|
<td>Support induction recursion</td></tr>
|
|
<td>Support induction recursion</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12088">#12088</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12088">#12088</a></th>
|
|
<td>Type/data family instances in kind checking</td></tr>
|
|
<td>Type/data family instances in kind checking</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12102">#12102</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12102">#12102</a></th>
|
|
<td>“Constraints in kinds” illegal family application in instance (+ documentation issues?)</td></tr>
|
|
<td>“Constraints in kinds” illegal family application in instance (+ documentation issues?)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12564">#12564</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12564">#12564</a></th>
|
|
<td>Type family in type pattern kind</td></tr>
|
|
<td>Type family in type pattern kind</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12612">#12612</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12612">#12612</a></th>
|
|
<td>Allow kinds of associated types to depend on earlier associated types</td></tr>
|
|
<td>Allow kinds of associated types to depend on earlier associated types</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12766">#12766</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12766">#12766</a></th>
|
|
<td>Allow runtime-representation polymorphic data families</td></tr>
|
|
<td>Allow runtime-representation polymorphic data families</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12928">#12928</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12928">#12928</a></th>
|
|
<td>Too easy to trigger CUSK condition using TH</td></tr>
|
|
<td>Too easy to trigger CUSK condition using TH</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13365">#13365</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13365">#13365</a></th>
|
|
<td>Notify user when adding a CUSK might help fix a type error</td></tr>
|
|
<td>Notify user when adding a CUSK might help fix a type error</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13408">#13408</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13408">#13408</a></th>
|
|
<td>Consider inferring a higher-rank kind for type synonyms</td></tr>
|
|
<td>Consider inferring a higher-rank kind for type synonyms</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13650">#13650</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13650">#13650</a></th>
|
|
<td>Implement KPush in types</td></tr>
|
|
<td>Implement KPush in types</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13933">#13933</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13933">#13933</a></th>
|
|
<td>Support Typeable instances for types with coercions</td></tr>
|
|
<td>Support Typeable instances for types with coercions</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14040">#14040</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14040">#14040</a></th>
|
|
<td>Typed holes regression in GHC 8.0.2: No skolem info: z_a1sY[sk:2]</td></tr>
|
|
<td>Typed holes regression in GHC 8.0.2: No skolem info: z_a1sY[sk:2]</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14119">#14119</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14119">#14119</a></th>
|
|
<td>Refactor type patterns</td></tr>
|
|
<td>Refactor type patterns</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14155">#14155</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14155">#14155</a></th>
|
|
<td>GHC mentions unlifted types out of the blue (to me anyway)</td></tr>
|
|
<td>GHC mentions unlifted types out of the blue (to me anyway)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14180">#14180</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14180">#14180</a></th>
|
|
<td>Strange/bad error message binding unboxed type variable</td></tr>
|
|
<td>Strange/bad error message binding unboxed type variable</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14198">#14198</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14198">#14198</a></th>
|
|
<td>Inconsistent treatment of implicitly bound kind variables as free-floating</td></tr>
|
|
<td>Inconsistent treatment of implicitly bound kind variables as free-floating</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14319">#14319</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14319">#14319</a></th>
|
|
<td>Stuck type families can lead to lousy error messages</td></tr>
|
|
<td>Stuck type families can lead to lousy error messages</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14419">#14419</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14419">#14419</a></th>
|
|
<td>Check kinds for ambiguity</td></tr>
|
|
<td>Check kinds for ambiguity</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14514">#14514</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14514">#14514</a></th>
|
|
<td>Error messages: suggest annotating with higher-rank kind</td></tr>
|
|
<td>Error messages: suggest annotating with higher-rank kind</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14645">#14645</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14645">#14645</a></th>
|
|
<td>Allow type family in data family return kind</td></tr>
|
|
<td>Allow type family in data family return kind</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14668">#14668</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14668">#14668</a></th>
|
|
<td>Ordering of declarations can cause typechecking to fail</td></tr>
|
|
<td>Ordering of declarations can cause typechecking to fail</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14873">#14873</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14873">#14873</a></th>
|
|
<td>The well-kinded type invariant (in TcType)</td></tr>
|
|
<td>The well-kinded type invariant (in TcType)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15474">#15474</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15474">#15474</a></th>
|
|
<td>Error message mentions Any</td></tr>
|
|
<td>Error message mentions Any</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15561">#15561</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15561">#15561</a></th>
|
|
<td>TypeInType: Type error conditioned on ordering of GADT and type family definitions</td></tr>
|
|
<td>TypeInType: Type error conditioned on ordering of GADT and type family definitions</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15577">#15577</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15577">#15577</a></th>
|
|
<td>TypeApplications-related infinite loop (GHC 8.6+ only)</td></tr>
|
|
<td>TypeApplications-related infinite loop (GHC 8.6+ only)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15588">#15588</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15588">#15588</a></th>
|
|
<td>Panic when abusing kind inference</td></tr>
|
|
<td>Panic when abusing kind inference</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15589">#15589</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15589">#15589</a></th>
|
|
<td>Always promoting metavariables during type inference may be wrong</td></tr>
|
|
<td>Always promoting metavariables during type inference may be wrong</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15710">#15710</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15710">#15710</a></th>
|
|
<td>Should GHC accept a type signature that needs coercion quantification?</td></tr>
|
|
<td>Should GHC accept a type signature that needs coercion quantification?</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15862">#15862</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15862">#15862</a></th>
|
|
<td>Panic with promoted types that Typeable doesn't support</td></tr>
|
|
<td>Panic with promoted types that Typeable doesn't support</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15869">#15869</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15869">#15869</a></th>
|
|
<td>Discrepancy between seemingly equivalent type synonym and type family</td></tr>
|
|
<td>Discrepancy between seemingly equivalent type synonym and type family</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15872">#15872</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15872">#15872</a></th>
|
|
<td>Odd pretty printing of equality constraint in kind ('GHC.Types.Eq# <>)</td></tr>
|
|
<td>Odd pretty printing of equality constraint in kind ('GHC.Types.Eq# <>)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15883">#15883</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15883">#15883</a></th>
|
|
<td>GHC panic: newtype F rep = F (forall (a :: TYPE rep). a)</td></tr>
|
|
<td>GHC panic: newtype F rep = F (forall (a :: TYPE rep). a)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15942">#15942</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15942">#15942</a></th>
|
|
<td>Associated type family can't be used at the kind level within other parts of parent class</td></tr>
|
|
<td>Associated type family can't be used at the kind level within other parts of parent class</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16244">#16244</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/16244">#16244</a></th>
|
|
<td>Couldn't match kind ‘k1’ with ‘k1’</td></tr>
|
|
<td>Couldn't match kind ‘k1’ with ‘k1’</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16245">#16245</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/16245">#16245</a></th>
|
|
<td>GHC panic (No skolem info) with QuantifiedConstraints and strange scoping</td></tr>
|
|
<td>GHC panic (No skolem info) with QuantifiedConstraints and strange scoping</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16247">#16247</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/16247">#16247</a></th>
|
|
<td>GHC 8.6 Core Lint regression (Kind application error)</td></tr>
|
|
<td>GHC 8.6 Core Lint regression (Kind application error)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16347">#16347</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/16347">#16347</a></th>
|
|
<td>GHC HEAD regression: piResultTys1</td></tr></table>
|
|
<td>GHC HEAD regression: piResultTys1</td></tr></table>
|
|
|
|
|
|
|
|
|
... | @@ -115,381 +115,381 @@ Open Tickets: |
... | @@ -115,381 +115,381 @@ Open Tickets: |
|
|
|
|
|
Closed Tickets:
|
|
Closed Tickets:
|
|
|
|
|
|
<table><tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11241">#11241</a></th>
|
|
<table><tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11241">#11241</a></th>
|
|
<td>Kind-level PartialTypeSignatures causes internal error</td></tr>
|
|
<td>Kind-level PartialTypeSignatures causes internal error</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11246">#11246</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11246">#11246</a></th>
|
|
<td>Regression typechecking type synonym which includes `Any`.</td></tr>
|
|
<td>Regression typechecking type synonym which includes `Any`.</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11252">#11252</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11252">#11252</a></th>
|
|
<td>:kind command hides the explicit kind</td></tr>
|
|
<td>:kind command hides the explicit kind</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11266">#11266</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11266">#11266</a></th>
|
|
<td>Can't :browse some modules with GHCi 7.11</td></tr>
|
|
<td>Can't :browse some modules with GHCi 7.11</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11334">#11334</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11334">#11334</a></th>
|
|
<td>GHC panic when calling typeOf on a promoted data constructor</td></tr>
|
|
<td>GHC panic when calling typeOf on a promoted data constructor</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11356">#11356</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11356">#11356</a></th>
|
|
<td>GHC panic</td></tr>
|
|
<td>GHC panic</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11357">#11357</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11357">#11357</a></th>
|
|
<td>Regression when deriving Generic1 on poly-kinded data family</td></tr>
|
|
<td>Regression when deriving Generic1 on poly-kinded data family</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11362">#11362</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11362">#11362</a></th>
|
|
<td>T6137 doesn't pass with reversed uniques</td></tr>
|
|
<td>T6137 doesn't pass with reversed uniques</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11399">#11399</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11399">#11399</a></th>
|
|
<td>Ill-kinded instance head involving -XTypeInType can invoke GHC panic</td></tr>
|
|
<td>Ill-kinded instance head involving -XTypeInType can invoke GHC panic</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11400">#11400</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11400">#11400</a></th>
|
|
<td>* is not an indexed type family</td></tr>
|
|
<td>* is not an indexed type family</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11401">#11401</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11401">#11401</a></th>
|
|
<td>No match in record selector ctev_dest</td></tr>
|
|
<td>No match in record selector ctev_dest</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11404">#11404</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11404">#11404</a></th>
|
|
<td>The type variable used in a kind is still used</td></tr>
|
|
<td>The type variable used in a kind is still used</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11405">#11405</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11405">#11405</a></th>
|
|
<td>Incorrect failure of type-level skolem escape check</td></tr>
|
|
<td>Incorrect failure of type-level skolem escape check</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11407">#11407</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11407">#11407</a></th>
|
|
<td>-XTypeInType uses up all memory when used in data family instance</td></tr>
|
|
<td>-XTypeInType uses up all memory when used in data family instance</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11410">#11410</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11410">#11410</a></th>
|
|
<td>Quantification over unlifted type variable</td></tr>
|
|
<td>Quantification over unlifted type variable</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11416">#11416</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11416">#11416</a></th>
|
|
<td>GHC mistakenly believes datatype with type synonym in its type can't be eta-reduced</td></tr>
|
|
<td>GHC mistakenly believes datatype with type synonym in its type can't be eta-reduced</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11453">#11453</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11453">#11453</a></th>
|
|
<td>Kinds in type synonym/data declarations can unexpectedly unify</td></tr>
|
|
<td>Kinds in type synonym/data declarations can unexpectedly unify</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11463">#11463</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11463">#11463</a></th>
|
|
<td>Template Haskell applies too many arguments to kind synonym</td></tr>
|
|
<td>Template Haskell applies too many arguments to kind synonym</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11471">#11471</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11471">#11471</a></th>
|
|
<td>Kind polymorphism and unboxed types: bad things are happening</td></tr>
|
|
<td>Kind polymorphism and unboxed types: bad things are happening</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11473">#11473</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11473">#11473</a></th>
|
|
<td>Levity polymorphism checks are inadequate</td></tr>
|
|
<td>Levity polymorphism checks are inadequate</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11484">#11484</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11484">#11484</a></th>
|
|
<td>Type synonym using -XTypeInType can't be spliced with TH</td></tr>
|
|
<td>Type synonym using -XTypeInType can't be spliced with TH</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11485">#11485</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11485">#11485</a></th>
|
|
<td>Very unhelpful message resulting from kind mismatch</td></tr>
|
|
<td>Very unhelpful message resulting from kind mismatch</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11519">#11519</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11519">#11519</a></th>
|
|
<td>Inferring non-tau kinds</td></tr>
|
|
<td>Inferring non-tau kinds</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11520">#11520</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11520">#11520</a></th>
|
|
<td>GHC falls into a hole if given incorrect kind signature</td></tr>
|
|
<td>GHC falls into a hole if given incorrect kind signature</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11548">#11548</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11548">#11548</a></th>
|
|
<td>Absolutely misleading error message on kind error</td></tr>
|
|
<td>Absolutely misleading error message on kind error</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11549">#11549</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11549">#11549</a></th>
|
|
<td>Add -fshow-runtime-rep</td></tr>
|
|
<td>Add -fshow-runtime-rep</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11554">#11554</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11554">#11554</a></th>
|
|
<td>Self quantification in GADT data declarations</td></tr>
|
|
<td>Self quantification in GADT data declarations</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11560">#11560</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11560">#11560</a></th>
|
|
<td>panic: isInjectiveTyCon sees a TcTyCon</td></tr>
|
|
<td>panic: isInjectiveTyCon sees a TcTyCon</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11592">#11592</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11592">#11592</a></th>
|
|
<td>Self-kinded type variable accepted</td></tr>
|
|
<td>Self-kinded type variable accepted</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11614">#11614</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11614">#11614</a></th>
|
|
<td>document TypeInType</td></tr>
|
|
<td>document TypeInType</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11635">#11635</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11635">#11635</a></th>
|
|
<td>Higher-rank kind in datatype definition rejected</td></tr>
|
|
<td>Higher-rank kind in datatype definition rejected</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11642">#11642</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11642">#11642</a></th>
|
|
<td>Heterogeneous type equality evidence ignored</td></tr>
|
|
<td>Heterogeneous type equality evidence ignored</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11648">#11648</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11648">#11648</a></th>
|
|
<td>assertPprPanic, called at compiler/types/TyCoRep.hs:1932</td></tr>
|
|
<td>assertPprPanic, called at compiler/types/TyCoRep.hs:1932</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11672">#11672</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11672">#11672</a></th>
|
|
<td>Poor error message</td></tr>
|
|
<td>Poor error message</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11699">#11699</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11699">#11699</a></th>
|
|
<td>Type families mistakingly report kind variables as unbound type variables</td></tr>
|
|
<td>Type families mistakingly report kind variables as unbound type variables</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11716">#11716</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11716">#11716</a></th>
|
|
<td>Make TypeInType stress test work</td></tr>
|
|
<td>Make TypeInType stress test work</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11719">#11719</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11719">#11719</a></th>
|
|
<td>Cannot use higher-rank kinds with type families</td></tr>
|
|
<td>Cannot use higher-rank kinds with type families</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11732">#11732</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11732">#11732</a></th>
|
|
<td>Deriving Generic1 interacts poorly with TypeInType</td></tr>
|
|
<td>Deriving Generic1 interacts poorly with TypeInType</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11785">#11785</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11785">#11785</a></th>
|
|
<td>Merge types and kinds in Template Haskell</td></tr>
|
|
<td>Merge types and kinds in Template Haskell</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11811">#11811</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11811">#11811</a></th>
|
|
<td>GHC sometimes misses a CUSK</td></tr>
|
|
<td>GHC sometimes misses a CUSK</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11821">#11821</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11821">#11821</a></th>
|
|
<td>Internal error: not in scope during type checking, but it passed the renamer</td></tr>
|
|
<td>Internal error: not in scope during type checking, but it passed the renamer</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11963">#11963</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11963">#11963</a></th>
|
|
<td>GHC introduces kind equality without TypeInType</td></tr>
|
|
<td>GHC introduces kind equality without TypeInType</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11964">#11964</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11964">#11964</a></th>
|
|
<td>Without TypeInType, inconsistently accepts Data.Kind.Type but not type synonym</td></tr>
|
|
<td>Without TypeInType, inconsistently accepts Data.Kind.Type but not type synonym</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11966">#11966</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11966">#11966</a></th>
|
|
<td>Surprising behavior with higher-rank quantification of kind variables</td></tr>
|
|
<td>Surprising behavior with higher-rank quantification of kind variables</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/11995">#11995</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/11995">#11995</a></th>
|
|
<td>Can't infer type</td></tr>
|
|
<td>Can't infer type</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12029">#12029</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12029">#12029</a></th>
|
|
<td>Notify user to import * from Data.Kind with TypeInType on</td></tr>
|
|
<td>Notify user to import * from Data.Kind with TypeInType on</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12030">#12030</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12030">#12030</a></th>
|
|
<td>GHCi Proposal: Display (Data.Kind.)Type instead of *</td></tr>
|
|
<td>GHCi Proposal: Display (Data.Kind.)Type instead of *</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12045">#12045</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12045">#12045</a></th>
|
|
<td>Visible kind application</td></tr>
|
|
<td>Visible kind application</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12081">#12081</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12081">#12081</a></th>
|
|
<td>TypeInType Compile-time Panic</td></tr>
|
|
<td>TypeInType Compile-time Panic</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12174">#12174</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12174">#12174</a></th>
|
|
<td>Recursive use of type-in-type results in infinite loop</td></tr>
|
|
<td>Recursive use of type-in-type results in infinite loop</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12176">#12176</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12176">#12176</a></th>
|
|
<td>Failure of bidirectional type inference at the kind level</td></tr>
|
|
<td>Failure of bidirectional type inference at the kind level</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12239">#12239</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12239">#12239</a></th>
|
|
<td>Dependent type family does not reduce</td></tr>
|
|
<td>Dependent type family does not reduce</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12369">#12369</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12369">#12369</a></th>
|
|
<td>data families shouldn't be required to have return kind *, data instances should</td></tr>
|
|
<td>data families shouldn't be required to have return kind *, data instances should</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12442">#12442</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12442">#12442</a></th>
|
|
<td>Pure unifier usually doesn't need to unify kinds</td></tr>
|
|
<td>Pure unifier usually doesn't need to unify kinds</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12503">#12503</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12503">#12503</a></th>
|
|
<td>Template Haskell regression: GHC erroneously thinks a type variable is also a kind</td></tr>
|
|
<td>Template Haskell regression: GHC erroneously thinks a type variable is also a kind</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12534">#12534</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12534">#12534</a></th>
|
|
<td>GHC 8.0 accepts recursive kind signature that GHC 7.10 rejects</td></tr>
|
|
<td>GHC 8.0 accepts recursive kind signature that GHC 7.10 rejects</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12553">#12553</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12553">#12553</a></th>
|
|
<td>Reference kind in a type instance declaration defined in another instance declaration</td></tr>
|
|
<td>Reference kind in a type instance declaration defined in another instance declaration</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12742">#12742</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12742">#12742</a></th>
|
|
<td>Instantiation of invisible type family arguments is too eager</td></tr>
|
|
<td>Instantiation of invisible type family arguments is too eager</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12919">#12919</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12919">#12919</a></th>
|
|
<td>Equality not used for substitution</td></tr>
|
|
<td>Equality not used for substitution</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12922">#12922</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12922">#12922</a></th>
|
|
<td>Kind classes compile with PolyKinds</td></tr>
|
|
<td>Kind classes compile with PolyKinds</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12931">#12931</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12931">#12931</a></th>
|
|
<td>tc_infer_args does not set in-scope set correctly</td></tr>
|
|
<td>tc_infer_args does not set in-scope set correctly</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12933">#12933</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12933">#12933</a></th>
|
|
<td>Wrong class instance selection with Data.Kind.Type</td></tr>
|
|
<td>Wrong class instance selection with Data.Kind.Type</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/12938">#12938</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/12938">#12938</a></th>
|
|
<td>Polykinded associated type family rejected on false pretenses</td></tr>
|
|
<td>Polykinded associated type family rejected on false pretenses</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13109">#13109</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13109">#13109</a></th>
|
|
<td>CUSK improvements</td></tr>
|
|
<td>CUSK improvements</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13333">#13333</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13333">#13333</a></th>
|
|
<td>Typeable regression in GHC HEAD</td></tr>
|
|
<td>Typeable regression in GHC HEAD</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13337">#13337</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13337">#13337</a></th>
|
|
<td>GHC doesn't think a type is of kind *, despite having evidence for it</td></tr>
|
|
<td>GHC doesn't think a type is of kind *, despite having evidence for it</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13364">#13364</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13364">#13364</a></th>
|
|
<td>Remove checkValidTelescope</td></tr>
|
|
<td>Remove checkValidTelescope</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13391">#13391</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13391">#13391</a></th>
|
|
<td>PolyKinds is more permissive in GHC 8</td></tr>
|
|
<td>PolyKinds is more permissive in GHC 8</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13399">#13399</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13399">#13399</a></th>
|
|
<td>Location of `forall` matters with higher-rank kind polymorphism</td></tr>
|
|
<td>Location of `forall` matters with higher-rank kind polymorphism</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13407">#13407</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13407">#13407</a></th>
|
|
<td>Fix printing of higher-rank kinds</td></tr>
|
|
<td>Fix printing of higher-rank kinds</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13409">#13409</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13409">#13409</a></th>
|
|
<td>Data types with higher-rank kinds are pretty-printed strangely</td></tr>
|
|
<td>Data types with higher-rank kinds are pretty-printed strangely</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13530">#13530</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13530">#13530</a></th>
|
|
<td>Horrible error message due to TypeInType</td></tr>
|
|
<td>Horrible error message due to TypeInType</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13546">#13546</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13546">#13546</a></th>
|
|
<td>Kind error with type equality</td></tr>
|
|
<td>Kind error with type equality</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13549">#13549</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13549">#13549</a></th>
|
|
<td>GHC 8.2.1's typechecker rejects code generated by singletons that 8.0 accepts</td></tr>
|
|
<td>GHC 8.2.1's typechecker rejects code generated by singletons that 8.0 accepts</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13555">#13555</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13555">#13555</a></th>
|
|
<td>Typechecker regression when combining PolyKinds and MonoLocalBinds</td></tr>
|
|
<td>Typechecker regression when combining PolyKinds and MonoLocalBinds</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13585">#13585</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13585">#13585</a></th>
|
|
<td>ala from Control.Lens.Wrapped panics</td></tr>
|
|
<td>ala from Control.Lens.Wrapped panics</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13601">#13601</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13601">#13601</a></th>
|
|
<td>GHC errors but hangs</td></tr>
|
|
<td>GHC errors but hangs</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13603">#13603</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13603">#13603</a></th>
|
|
<td>Can't resolve levity polymorphic superclass</td></tr>
|
|
<td>Can't resolve levity polymorphic superclass</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13625">#13625</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13625">#13625</a></th>
|
|
<td>GHC internal error: ‘Y’ is not in scope during type checking, but it passed the renamer</td></tr>
|
|
<td>GHC internal error: ‘Y’ is not in scope during type checking, but it passed the renamer</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13643">#13643</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13643">#13643</a></th>
|
|
<td>Core lint error with TypeInType and TypeFamilyDependencies</td></tr>
|
|
<td>Core lint error with TypeInType and TypeFamilyDependencies</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13674">#13674</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13674">#13674</a></th>
|
|
<td>Poor error message which masks occurs-check failure</td></tr>
|
|
<td>Poor error message which masks occurs-check failure</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13761">#13761</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13761">#13761</a></th>
|
|
<td>Can't create poly-kinded GADT with TypeInType enabled, but can without</td></tr>
|
|
<td>Can't create poly-kinded GADT with TypeInType enabled, but can without</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13762">#13762</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13762">#13762</a></th>
|
|
<td>TypeInType is not documented in the users' guide flag reference</td></tr>
|
|
<td>TypeInType is not documented in the users' guide flag reference</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13777">#13777</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13777">#13777</a></th>
|
|
<td>Poor error message around CUSKs</td></tr>
|
|
<td>Poor error message around CUSKs</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13780">#13780</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13780">#13780</a></th>
|
|
<td>Nightmarish pretty-printing of equality type in GHC 8.2 error message</td></tr>
|
|
<td>Nightmarish pretty-printing of equality type in GHC 8.2 error message</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13781">#13781</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13781">#13781</a></th>
|
|
<td>(a :: (k :: Type)) is too exotic for Template Haskell</td></tr>
|
|
<td>(a :: (k :: Type)) is too exotic for Template Haskell</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13790">#13790</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13790">#13790</a></th>
|
|
<td>GHC doesn't reduce type family in kind signature unless its arm is twisted</td></tr>
|
|
<td>GHC doesn't reduce type family in kind signature unless its arm is twisted</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13822">#13822</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13822">#13822</a></th>
|
|
<td>GHC not using injectivity?</td></tr>
|
|
<td>GHC not using injectivity?</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13871">#13871</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13871">#13871</a></th>
|
|
<td>GHC panic in 8.2 only: typeIsTypeable(Coercion)</td></tr>
|
|
<td>GHC panic in 8.2 only: typeIsTypeable(Coercion)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13872">#13872</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13872">#13872</a></th>
|
|
<td>Strange Typeable error message involving TypeInType</td></tr>
|
|
<td>Strange Typeable error message involving TypeInType</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13879">#13879</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13879">#13879</a></th>
|
|
<td>Strange interaction between higher-rank kinds and type synonyms</td></tr>
|
|
<td>Strange interaction between higher-rank kinds and type synonyms</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13895">#13895</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13895">#13895</a></th>
|
|
<td>"Illegal constraint in a type" error - is it fixable?</td></tr>
|
|
<td>"Illegal constraint in a type" error - is it fixable?</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13909">#13909</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13909">#13909</a></th>
|
|
<td>Misleading error message when partially applying a data type with a visible quantifier in its kind</td></tr>
|
|
<td>Misleading error message when partially applying a data type with a visible quantifier in its kind</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13910">#13910</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13910">#13910</a></th>
|
|
<td>Inlining a definition causes GHC to panic (repSplitTyConApp_maybe)</td></tr>
|
|
<td>Inlining a definition causes GHC to panic (repSplitTyConApp_maybe)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13913">#13913</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13913">#13913</a></th>
|
|
<td>Can't apply higher-ranked kind in type family</td></tr>
|
|
<td>Can't apply higher-ranked kind in type family</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13915">#13915</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13915">#13915</a></th>
|
|
<td>GHC 8.2 regression: "Can't find interface-file declaration" for promoted data family instance</td></tr>
|
|
<td>GHC 8.2 regression: "Can't find interface-file declaration" for promoted data family instance</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13929">#13929</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13929">#13929</a></th>
|
|
<td>GHC panic with levity polymorphism</td></tr>
|
|
<td>GHC panic with levity polymorphism</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13938">#13938</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13938">#13938</a></th>
|
|
<td>Iface type variable out of scope: k1</td></tr>
|
|
<td>Iface type variable out of scope: k1</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13963">#13963</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13963">#13963</a></th>
|
|
<td>Runtime representation confusingly displayed</td></tr>
|
|
<td>Runtime representation confusingly displayed</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13972">#13972</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13972">#13972</a></th>
|
|
<td>GHC 8.2 error message around indexes for associated type instances is baffling</td></tr>
|
|
<td>GHC 8.2 error message around indexes for associated type instances is baffling</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/13988">#13988</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/13988">#13988</a></th>
|
|
<td>GADT constructor with kind equality constraint quantifies unused existential type variables</td></tr>
|
|
<td>GADT constructor with kind equality constraint quantifies unused existential type variables</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14042">#14042</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14042">#14042</a></th>
|
|
<td>Datatypes cannot use a type family in their return kind</td></tr>
|
|
<td>Datatypes cannot use a type family in their return kind</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14086">#14086</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14086">#14086</a></th>
|
|
<td>Empty case does not detect kinds</td></tr>
|
|
<td>Empty case does not detect kinds</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14091">#14091</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14091">#14091</a></th>
|
|
<td>When PolyKinds is on, suggested type signatures seem to require TypeInType</td></tr>
|
|
<td>When PolyKinds is on, suggested type signatures seem to require TypeInType</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14139">#14139</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14139">#14139</a></th>
|
|
<td>Kind signature not accepted (singletons)</td></tr>
|
|
<td>Kind signature not accepted (singletons)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14162">#14162</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14162">#14162</a></th>
|
|
<td>Core Lint error</td></tr>
|
|
<td>Core Lint error</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14174">#14174</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14174">#14174</a></th>
|
|
<td>GHC panic with TypeInType and type family</td></tr>
|
|
<td>GHC panic with TypeInType and type family</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14175">#14175</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14175">#14175</a></th>
|
|
<td>Panic repSplitTyConApp_maybe</td></tr>
|
|
<td>Panic repSplitTyConApp_maybe</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14203">#14203</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14203">#14203</a></th>
|
|
<td>GHC-inferred type signature doesn't actually typecheck</td></tr>
|
|
<td>GHC-inferred type signature doesn't actually typecheck</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14207">#14207</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14207">#14207</a></th>
|
|
<td>Levity polymorphic GADT requires extra type signatures</td></tr>
|
|
<td>Levity polymorphic GADT requires extra type signatures</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14209">#14209</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14209">#14209</a></th>
|
|
<td>GHC 8.2.1 regression involving telescoping kind signature</td></tr>
|
|
<td>GHC 8.2.1 regression involving telescoping kind signature</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14230">#14230</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14230">#14230</a></th>
|
|
<td>Gruesome kind mismatch errors for associated data family instances</td></tr>
|
|
<td>Gruesome kind mismatch errors for associated data family instances</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14238">#14238</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14238">#14238</a></th>
|
|
<td>`:kind` suppresses visible dependent quantifiers by default in GHCi 8.2.1</td></tr>
|
|
<td>`:kind` suppresses visible dependent quantifiers by default in GHCi 8.2.1</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14350">#14350</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14350">#14350</a></th>
|
|
<td>Infinite loop when typechecking incorrect implementation (GHC HEAD only)</td></tr>
|
|
<td>Infinite loop when typechecking incorrect implementation (GHC HEAD only)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14352">#14352</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14352">#14352</a></th>
|
|
<td>Higher-rank kind ascription oddities</td></tr>
|
|
<td>Higher-rank kind ascription oddities</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14366">#14366</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14366">#14366</a></th>
|
|
<td>Type family equation refuses to unify wildcard type patterns</td></tr>
|
|
<td>Type family equation refuses to unify wildcard type patterns</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14394">#14394</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14394">#14394</a></th>
|
|
<td>Inferred type for pattern synonym has redundant equality constraint</td></tr>
|
|
<td>Inferred type for pattern synonym has redundant equality constraint</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14441">#14441</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14441">#14441</a></th>
|
|
<td>GHC HEAD regression involving type families in kinds</td></tr>
|
|
<td>GHC HEAD regression involving type families in kinds</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14450">#14450</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14450">#14450</a></th>
|
|
<td>GHCi spins forever</td></tr>
|
|
<td>GHCi spins forever</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14451">#14451</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14451">#14451</a></th>
|
|
<td>Need proper SCC analysis of type declarations, taking account of CUSKs</td></tr>
|
|
<td>Need proper SCC analysis of type declarations, taking account of CUSKs</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14507">#14507</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14507">#14507</a></th>
|
|
<td>Core Lint error with Type.Reflection and pattern synonyms</td></tr>
|
|
<td>Core Lint error with Type.Reflection and pattern synonyms</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14515">#14515</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14515">#14515</a></th>
|
|
<td>"Same" higher-rank kind synonyms behave differently</td></tr>
|
|
<td>"Same" higher-rank kind synonyms behave differently</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14520">#14520</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14520">#14520</a></th>
|
|
<td>GHC panic (TypeInType)</td></tr>
|
|
<td>GHC panic (TypeInType)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14552">#14552</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14552">#14552</a></th>
|
|
<td>GHC panic on pattern synonym</td></tr>
|
|
<td>GHC panic on pattern synonym</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14554">#14554</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14554">#14554</a></th>
|
|
<td>Core Lint error mixing</td></tr>
|
|
<td>Core Lint error mixing</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14555">#14555</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14555">#14555</a></th>
|
|
<td>GHC Panic with TypeInType / levity polymorphism</td></tr>
|
|
<td>GHC Panic with TypeInType / levity polymorphism</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14556">#14556</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14556">#14556</a></th>
|
|
<td>Core Lint error: Ill-kinded result in coercion</td></tr>
|
|
<td>Core Lint error: Ill-kinded result in coercion</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14563">#14563</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14563">#14563</a></th>
|
|
<td>GHC Panic with TypeInType / levity polymorphism</td></tr>
|
|
<td>GHC Panic with TypeInType / levity polymorphism</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14580">#14580</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14580">#14580</a></th>
|
|
<td>GHC panic (TypeInType) (the 'impossible' happened)</td></tr>
|
|
<td>GHC panic (TypeInType) (the 'impossible' happened)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14584">#14584</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14584">#14584</a></th>
|
|
<td>Core Lint error</td></tr>
|
|
<td>Core Lint error</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14605">#14605</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14605">#14605</a></th>
|
|
<td>Core Lint error</td></tr>
|
|
<td>Core Lint error</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14607">#14607</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14607">#14607</a></th>
|
|
<td>Core Lint error</td></tr>
|
|
<td>Core Lint error</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14720">#14720</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14720">#14720</a></th>
|
|
<td>GHC 8.4.1-alpha regression with TypeInType</td></tr>
|
|
<td>GHC 8.4.1-alpha regression with TypeInType</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14749">#14749</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14749">#14749</a></th>
|
|
<td>T13822 fails</td></tr>
|
|
<td>T13822 fails</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14764">#14764</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14764">#14764</a></th>
|
|
<td>Make $! representation-polymorphic</td></tr>
|
|
<td>Make $! representation-polymorphic</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14795">#14795</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14795">#14795</a></th>
|
|
<td>Data type return kinds don't obey the forall-or-nothing rule</td></tr>
|
|
<td>Data type return kinds don't obey the forall-or-nothing rule</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14845">#14845</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14845">#14845</a></th>
|
|
<td>TypeInType, index GADT by constraint witness</td></tr>
|
|
<td>TypeInType, index GADT by constraint witness</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14846">#14846</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14846">#14846</a></th>
|
|
<td>Renamer hangs (because of -XInstanceSigs?)</td></tr>
|
|
<td>Renamer hangs (because of -XInstanceSigs?)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14847">#14847</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14847">#14847</a></th>
|
|
<td>Inferring dependent kinds for non-recursive types</td></tr>
|
|
<td>Inferring dependent kinds for non-recursive types</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14880">#14880</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14880">#14880</a></th>
|
|
<td>GHC panic: updateRole</td></tr>
|
|
<td>GHC panic: updateRole</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14887">#14887</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14887">#14887</a></th>
|
|
<td>Explicitly quantifying a kind variable causes a telescope to fail to kind-check</td></tr>
|
|
<td>Explicitly quantifying a kind variable causes a telescope to fail to kind-check</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14904">#14904</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14904">#14904</a></th>
|
|
<td>Compiler panic (piResultTy)</td></tr>
|
|
<td>Compiler panic (piResultTy)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14938">#14938</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14938">#14938</a></th>
|
|
<td>Pattern matching on GADT does not refine type family parameters</td></tr>
|
|
<td>Pattern matching on GADT does not refine type family parameters</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/14991">#14991</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/14991">#14991</a></th>
|
|
<td>GHC HEAD regression involving TYPEs in type families</td></tr>
|
|
<td>GHC HEAD regression involving TYPEs in type families</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15039">#15039</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15039">#15039</a></th>
|
|
<td>Bizarre pretty-printing of inferred Coercible constraint in partial type signature</td></tr>
|
|
<td>Bizarre pretty-printing of inferred Coercible constraint in partial type signature</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15076">#15076</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15076">#15076</a></th>
|
|
<td>Typed hole with higher-rank kind causes GHC to panic (No skolem info)</td></tr>
|
|
<td>Typed hole with higher-rank kind causes GHC to panic (No skolem info)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15079">#15079</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15079">#15079</a></th>
|
|
<td>GHC HEAD regression: cannot instantiate higher-rank kind</td></tr>
|
|
<td>GHC HEAD regression: cannot instantiate higher-rank kind</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15116">#15116</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15116">#15116</a></th>
|
|
<td>GHC internal error when GADT return type mentions its own constructor name</td></tr>
|
|
<td>GHC internal error when GADT return type mentions its own constructor name</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15122">#15122</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15122">#15122</a></th>
|
|
<td>GHC HEAD typechecker regression</td></tr>
|
|
<td>GHC HEAD typechecker regression</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15142">#15142</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15142">#15142</a></th>
|
|
<td>GHC HEAD regression: tcTyVarDetails</td></tr>
|
|
<td>GHC HEAD regression: tcTyVarDetails</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15170">#15170</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15170">#15170</a></th>
|
|
<td>GHC HEAD panic (dischargeFmv)</td></tr>
|
|
<td>GHC HEAD panic (dischargeFmv)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15195">#15195</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15195">#15195</a></th>
|
|
<td>Merge -XPolyKinds with -XTypeInType</td></tr>
|
|
<td>Merge -XPolyKinds with -XTypeInType</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15245">#15245</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15245">#15245</a></th>
|
|
<td>Data family promotion is possible</td></tr>
|
|
<td>Data family promotion is possible</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15282">#15282</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15282">#15282</a></th>
|
|
<td>Document how equality-bearing constructors are promoted in Core</td></tr>
|
|
<td>Document how equality-bearing constructors are promoted in Core</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15308">#15308</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15308">#15308</a></th>
|
|
<td>Error message prints explicit kinds when it shouldn't</td></tr>
|
|
<td>Error message prints explicit kinds when it shouldn't</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15330">#15330</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15330">#15330</a></th>
|
|
<td>Error message prints invisible kind arguments in a visible matter</td></tr>
|
|
<td>Error message prints invisible kind arguments in a visible matter</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15343">#15343</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15343">#15343</a></th>
|
|
<td>Implicitly quantifying a kind variable causes GHC 8.6 to panic (coercionKind)</td></tr>
|
|
<td>Implicitly quantifying a kind variable causes GHC 8.6 to panic (coercionKind)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15346">#15346</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15346">#15346</a></th>
|
|
<td>Core Lint error in GHC 8.6.1: From-type of Cast differs from type of enclosed expression</td></tr>
|
|
<td>Core Lint error in GHC 8.6.1: From-type of Cast differs from type of enclosed expression</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15361">#15361</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15361">#15361</a></th>
|
|
<td>Error message displays redundant equality constraint</td></tr>
|
|
<td>Error message displays redundant equality constraint</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15370">#15370</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15370">#15370</a></th>
|
|
<td>Typed hole panic on GHC 8.6 (tcTyVarDetails)</td></tr>
|
|
<td>Typed hole panic on GHC 8.6 (tcTyVarDetails)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15380">#15380</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15380">#15380</a></th>
|
|
<td>Infinite typechecker loop in GHC 8.6</td></tr>
|
|
<td>Infinite typechecker loop in GHC 8.6</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15419">#15419</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15419">#15419</a></th>
|
|
<td>GHC 8.6.1 regression (buildKindCoercion)</td></tr>
|
|
<td>GHC 8.6.1 regression (buildKindCoercion)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15428">#15428</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15428">#15428</a></th>
|
|
<td>Oversaturated type family application panicks GHC (piResultTys2)</td></tr>
|
|
<td>Oversaturated type family application panicks GHC (piResultTys2)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15472">#15472</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15472">#15472</a></th>
|
|
<td>GHC HEAD type inference regression post-"Remove decideKindGeneralisationPlan"</td></tr>
|
|
<td>GHC HEAD type inference regression post-"Remove decideKindGeneralisationPlan"</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15497">#15497</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15497">#15497</a></th>
|
|
<td>Coercion Quantification</td></tr>
|
|
<td>Coercion Quantification</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15515">#15515</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15515">#15515</a></th>
|
|
<td>Bogus "No instance" error when type families appear in kinds</td></tr>
|
|
<td>Bogus "No instance" error when type families appear in kinds</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15545">#15545</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15545">#15545</a></th>
|
|
<td>Forced to enable TypeInType because of (i ~ i)</td></tr>
|
|
<td>Forced to enable TypeInType because of (i ~ i)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15583">#15583</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15583">#15583</a></th>
|
|
<td>Treating Constraint as Type when using (type C = Constraint)</td></tr>
|
|
<td>Treating Constraint as Type when using (type C = Constraint)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15597">#15597</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15597">#15597</a></th>
|
|
<td>GHC shouting: panic!</td></tr>
|
|
<td>GHC shouting: panic!</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15629">#15629</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15629">#15629</a></th>
|
|
<td>"No skolem info" panic (GHC 8.6 only)</td></tr>
|
|
<td>"No skolem info" panic (GHC 8.6 only)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15658">#15658</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15658">#15658</a></th>
|
|
<td>strange inferred kind with TypeInType</td></tr>
|
|
<td>strange inferred kind with TypeInType</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15664">#15664</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15664">#15664</a></th>
|
|
<td>Core Lint error</td></tr>
|
|
<td>Core Lint error</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15709">#15709</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15709">#15709</a></th>
|
|
<td>GHC panic using TypeInType with minimal source code</td></tr>
|
|
<td>GHC panic using TypeInType with minimal source code</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15711">#15711</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15711">#15711</a></th>
|
|
<td>Kind inference of class variables does not examine associated types</td></tr>
|
|
<td>Kind inference of class variables does not examine associated types</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15740">#15740</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15740">#15740</a></th>
|
|
<td>Type family with higher-rank result is too accepting</td></tr>
|
|
<td>Type family with higher-rank result is too accepting</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15778">#15778</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15778">#15778</a></th>
|
|
<td>GHC HEAD-only panic (zonkTcTyVarToTyVar)</td></tr>
|
|
<td>GHC HEAD-only panic (zonkTcTyVarToTyVar)</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15787">#15787</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15787">#15787</a></th>
|
|
<td>GHC panic using kind application</td></tr>
|
|
<td>GHC panic using kind application</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15789">#15789</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15789">#15789</a></th>
|
|
<td>GHC panic using visible kind applications and a higher-rank kind</td></tr>
|
|
<td>GHC panic using visible kind applications and a higher-rank kind</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15795">#15795</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15795">#15795</a></th>
|
|
<td>Core lint error with unused kind variable in data type return kind</td></tr>
|
|
<td>Core lint error with unused kind variable in data type return kind</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15817">#15817</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15817">#15817</a></th>
|
|
<td>Data family quantification = GHC panic, ‘impossible’ happened</td></tr>
|
|
<td>Data family quantification = GHC panic, ‘impossible’ happened</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15852">#15852</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15852">#15852</a></th>
|
|
<td>Bad axiom produced for polykinded data family</td></tr>
|
|
<td>Bad axiom produced for polykinded data family</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15859">#15859</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15859">#15859</a></th>
|
|
<td>Dependent quantification, GHC panic</td></tr>
|
|
<td>Dependent quantification, GHC panic</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15874">#15874</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15874">#15874</a></th>
|
|
<td>Data families with higher-rank kinds</td></tr>
|
|
<td>Data families with higher-rank kinds</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/15881">#15881</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/15881">#15881</a></th>
|
|
<td>GHC Panic: data A n (a :: n) :: a -> Type</td></tr>
|
|
<td>GHC Panic: data A n (a :: n) :: a -> Type</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16008">#16008</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/16008">#16008</a></th>
|
|
<td>GHC HEAD type family regression involving invisible arguments</td></tr>
|
|
<td>GHC HEAD type family regression involving invisible arguments</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16263">#16263</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/16263">#16263</a></th>
|
|
<td>Rework GHC's treatment of constraints in kinds</td></tr>
|
|
<td>Rework GHC's treatment of constraints in kinds</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16310">#16310</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/16310">#16310</a></th>
|
|
<td>Program fails with "Impossible case alternative" when optimized</td></tr>
|
|
<td>Program fails with "Impossible case alternative" when optimized</td></tr>
|
|
<tr><th><a href="https://gitlab.haskell.org//ghc/ghc/issues/16391">#16391</a></th>
|
|
<tr><th><a href="https://gitlab.haskell.org/ghc/ghc/issues/16391">#16391</a></th>
|
|
<td>"Quantified type's kind mentions quantified type variable" error with fancy-kinded GADT</td></tr></table>
|
|
<td>"Quantified type's kind mentions quantified type variable" error with fancy-kinded GADT</td></tr></table>
|
|
|
|
|
|
|
|
|
... | @@ -505,7 +505,7 @@ The changes described below are intended to be controlled by a new extension `-X |
... | @@ -505,7 +505,7 @@ The changes described below are intended to be controlled by a new extension `-X |
|
There will be no distinction in the language between kinds and types. (Error messages will, however, do their best to use the words "type" and "kind" much like they do now. I take non-degradation of error messages very seriously.)
|
|
There will be no distinction in the language between kinds and types. (Error messages will, however, do their best to use the words "type" and "kind" much like they do now. I take non-degradation of error messages very seriously.)
|
|
|
|
|
|
|
|
|
|
This means that inhabited kinds have type `*`. In particular, `*` has type `*`. Though this causes inconsistency in other dependently-typed languages, it does not in Haskell, essentially because equality proofs are written in a different sub-language than ordinary terms. See [ our paper](http://www.seas.upenn.edu/~sweirich/papers/fckinds.pdf) for more details.
|
|
This means that inhabited kinds have type `*`. In particular, `*` has type `*`. Though this causes inconsistency in other dependently-typed languages, it does not in Haskell, essentially because equality proofs are written in a different sub-language than ordinary terms. See [our paper](http://www.seas.upenn.edu/~sweirich/papers/fckinds.pdf) for more details.
|
|
|
|
|
|
|
|
|
|
Essentially, this is the one master change coming with Phase 1. But there are many consequences, as I draw out below.
|
|
Essentially, this is the one master change coming with Phase 1. But there are many consequences, as I draw out below.
|
... | @@ -571,7 +571,7 @@ In addition to the above treatment, some standard library module (probably `Data |
... | @@ -571,7 +571,7 @@ In addition to the above treatment, some standard library module (probably `Data |
|
With all the type variables floating around, it will be very convenient to sometimes specify a type variable visibly in source code.
|
|
With all the type variables floating around, it will be very convenient to sometimes specify a type variable visibly in source code.
|
|
|
|
|
|
|
|
|
|
So, if `id :: forall a. a -> a`, then `id @Int :: Int -> Int`. See also a [ draft paper](http://www.seas.upenn.edu/~sweirich/papers/type-app-extended.pdf) on the subject.
|
|
So, if `id :: forall a. a -> a`, then `id @Int :: Int -> Int`. See also a [draft paper](http://www.seas.upenn.edu/~sweirich/papers/type-app-extended.pdf) on the subject.
|
|
|
|
|
|
## Type family equations can be constrained
|
|
## Type family equations can be constrained
|
|
|
|
|
... | @@ -602,7 +602,7 @@ This feature will not carry over to data families (which for reasons beyond the |
... | @@ -602,7 +602,7 @@ This feature will not carry over to data families (which for reasons beyond the |
|
## Visibility changes in types
|
|
## Visibility changes in types
|
|
|
|
|
|
|
|
|
|
GHC tracks three different levels of visibility: `Invisible` binders are never user-written, `Specified` ones are available for visible type applications, and `Visible` ones are always user-written. See `Note [TyBinders and VisibilityFlags]` in [ TyCoRep](https://github.com/ghc/ghc/blob/master/compiler/types/TyCoRep.hs).
|
|
GHC tracks three different levels of visibility: `Invisible` binders are never user-written, `Specified` ones are available for visible type applications, and `Visible` ones are always user-written. See `Note [TyBinders and VisibilityFlags]` in [TyCoRep](https://github.com/ghc/ghc/blob/master/compiler/types/TyCoRep.hs).
|
|
|
|
|
|
|
|
|
|
|
|
|
... | @@ -669,7 +669,7 @@ This version simply ignores visibility flags on binders when doing an equality c |
... | @@ -669,7 +669,7 @@ This version simply ignores visibility flags on binders when doing an equality c |
|
|
|
|
|
- Simon advocated for this design in a call on Apr 1 2016. It is the simplest.
|
|
- Simon advocated for this design in a call on Apr 1 2016. It is the simplest.
|
|
- Richard was concerned about what an equality between `forall k -> k -> *` and `forall k. k -> *` might mean. But we don't need these to be `tcEqType`, we just need a coercion between them. As long as the types are `eqType`, then `Refl (forall k. k -> *)` does nicely.
|
|
- Richard was concerned about what an equality between `forall k -> k -> *` and `forall k. k -> *` might mean. But we don't need these to be `tcEqType`, we just need a coercion between them. As long as the types are `eqType`, then `Refl (forall k. k -> *)` does nicely.
|
|
- Richard was also concerned that if we consider these types equal, it means that we can replace one with the other willy-nilly, in thinking about a *declarative* specification of the type system. But with visible type application rules, we have *two* subtyping relations (and hence two type-equivalence relations) one to use when both types to compare are known and one to use otherwise. (See the [ paper](http://www.seas.upenn.edu/~sweirich/papers/esop2016-typeapp.pdf).) So having one of these relations accept a connection between these two types is OK.
|
|
- Richard was also concerned that if we consider these types equal, it means that we can replace one with the other willy-nilly, in thinking about a *declarative* specification of the type system. But with visible type application rules, we have *two* subtyping relations (and hence two type-equivalence relations) one to use when both types to compare are known and one to use otherwise. (See the [paper](http://www.seas.upenn.edu/~sweirich/papers/esop2016-typeapp.pdf).) So having one of these relations accept a connection between these two types is OK.
|
|
- Conor finds it abhorrent to think about a system that equates (under any equivalence relation) types that have different user-visible arities, as do `forall k -> k -> *` (arity 2) and `forall k. k -> *` (arity 1).
|
|
- Conor finds it abhorrent to think about a system that equates (under any equivalence relation) types that have different user-visible arities, as do `forall k -> k -> *` (arity 2) and `forall k. k -> *` (arity 1).
|
|
- Consider now the expression `X (P1 k :: forall k. k -> *)`. Is that accepted? By the kind signature, `X`'s argument has the right kind. Note that the signature brings `k` into scope and then checks `P1 k` against `k -> *`. It indeed has this type, so it certainly seems like `(P1 k :: forall k. k -> *)` should be accepted. (If you're dubious, think about what happens in terms.) Sadly, this desugars into a situation where we need a type-level lambda. We don't have this yet. But we should be future-proof against a language that does have type-level lambda.
|
|
- Consider now the expression `X (P1 k :: forall k. k -> *)`. Is that accepted? By the kind signature, `X`'s argument has the right kind. Note that the signature brings `k` into scope and then checks `P1 k` against `k -> *`. It indeed has this type, so it certainly seems like `(P1 k :: forall k. k -> *)` should be accepted. (If you're dubious, think about what happens in terms.) Sadly, this desugars into a situation where we need a type-level lambda. We don't have this yet. But we should be future-proof against a language that does have type-level lambda.
|
|
- The bullet above argues that `X (P1 k :: forall k. k -> *)` should be accepted. But plan (A) says that `X P1` should be accepted. It surely can't hurt to add a type signature, so that means that `X (P1 :: forall k. k -> *)` should be accepted. And this is quite bizarre to accept that last one alongside the first one.
|
|
- The bullet above argues that `X (P1 k :: forall k. k -> *)` should be accepted. But plan (A) says that `X P1` should be accepted. It surely can't hurt to add a type signature, so that means that `X (P1 :: forall k. k -> *)` should be accepted. And this is quite bizarre to accept that last one alongside the first one.
|
... | @@ -710,7 +710,7 @@ Taking this all into account, Richard advocates for (B), but not all that strong |
... | @@ -710,7 +710,7 @@ Taking this all into account, Richard advocates for (B), but not all that strong |
|
## The new type system
|
|
## The new type system
|
|
|
|
|
|
|
|
|
|
The new type system adheres rather closely to what is proposed in the original "FC with Kind Equality" paper, available [ here](http://www.cis.upenn.edu/~eir/papers/2013/fckinds/fckinds-extended.pdf), with the addition of [NoSubKinds](no-sub-kinds). The type system, as implemented, is in the [ Core Specification](https://github.com/goldfirere/ghc/raw/nokinds/docs/core-spec/core-spec.pdf) document. Here are the highlights of the changes:
|
|
The new type system adheres rather closely to what is proposed in the original "FC with Kind Equality" paper, available [here](http://www.cis.upenn.edu/~eir/papers/2013/fckinds/fckinds-extended.pdf), with the addition of [NoSubKinds](no-sub-kinds). The type system, as implemented, is in the [ Core Specification](https://github.com/goldfirere/ghc/raw/nokinds/docs/core-spec/core-spec.pdf) document. Here are the highlights of the changes:
|
|
|
|
|
|
- Two new constructors for `Type`: `CastTy :: Type -> Coercion -> Type` (which performs a kind cast) and `CoercionTy :: Coercion -> Type` which embeds coercions into types. The former eliminates kind coercions (that's the whole point of this change!) and the latter allows for the promotion of GADT data constructors, which will promote to a type taking a coercion argument.
|
|
- Two new constructors for `Type`: `CastTy :: Type -> Coercion -> Type` (which performs a kind cast) and `CoercionTy :: Coercion -> Type` which embeds coercions into types. The former eliminates kind coercions (that's the whole point of this change!) and the latter allows for the promotion of GADT data constructors, which will promote to a type taking a coercion argument.
|
|
|
|
|
... | @@ -739,7 +739,7 @@ The new type system adheres rather closely to what is proposed in the original " |
... | @@ -739,7 +739,7 @@ The new type system adheres rather closely to what is proposed in the original " |
|
|
|
|
|
- [NoSubKinds](no-sub-kinds).
|
|
- [NoSubKinds](no-sub-kinds).
|
|
|
|
|
|
- Roles on kind coercions, as described in my recent ICFP submission [ here](http://www.cis.upenn.edu/~eir/papers/2015/equalities/equalities-extended.pdf).
|
|
- Roles on kind coercions, as described in my recent ICFP submission [here](http://www.cis.upenn.edu/~eir/papers/2015/equalities/equalities-extended.pdf).
|
|
|
|
|
|
- The new mutual recursion between types and coercions means that TypeRep has been renamed TyCoRep. There is also a non-trivial Coercion.hs-boot file.
|
|
- The new mutual recursion between types and coercions means that TypeRep has been renamed TyCoRep. There is also a non-trivial Coercion.hs-boot file.
|
|
|
|
|
... | @@ -1012,7 +1012,7 @@ and (2) are terrible. |
... | @@ -1012,7 +1012,7 @@ and (2) are terrible. |
|
### `liftCoSubst`
|
|
### `liftCoSubst`
|
|
|
|
|
|
|
|
|
|
The lifting operation has become subtler. Happily, it is well described in Section 5 of [ this paper](http://www.cis.upenn.edu/~eir/papers/2013/fckinds/fckinds-extended.pdf). The actual, implemented, role-aware version of lifting is included in Appendix B of [ this paper](http://www.cis.upenn.edu/~eir/papers/2015/equalities/equalities-extended.pdf).
|
|
The lifting operation has become subtler. Happily, it is well described in Section 5 of [this paper](http://www.cis.upenn.edu/~eir/papers/2013/fckinds/fckinds-extended.pdf). The actual, implemented, role-aware version of lifting is included in Appendix B of [ this paper](http://www.cis.upenn.edu/~eir/papers/2015/equalities/equalities-extended.pdf).
|
|
|
|
|
|
### New `eqType`
|
|
### New `eqType`
|
|
|
|
|
... | | ... | |