<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>



<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">

<h3>
Simon Peyton Jones pushed to branch wip/T18126
at <a href="https://gitlab.haskell.org/ghc/ghc">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/710aad27519856b30a60f69bbf2910298e650166">710aad27</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-08-11T16:21:54+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve kind generalisation, error messages

This patch does two things:

* It refactors GHC.Tc.Errors a bit.  In debugging Quick Look I was
  forced to look in detail at error messages, and ended up doing a bit
  of refactoring, esp in mkTyVarEqErr'.  It's still quite a mess, but
  a bit better, I think.

* It makes a significant improvement to the kind checking of type and
  class declarations. Specifically, we now ensure that if kind
  checking fails with an unsolved constraint, all the skolems are in
  scope.  That wasn't the case before, which led to some obscure error
  messages; and occasional failures with "no skolem info" (eg #16245).

Both of these, and the main Quick Look patch itself, affect a /lot/ of
error messages, as you can see from the number of files changed.  I've
checked them all; I think they are as good or better than before.

Smaller things

* I documented the various instances of VarBndr better.
  See Note [The VarBndr tyep and its uses] in GHC.Types.Var

* Renamed GHC.Tc.Solver.simpl_top to simplifyTopWanteds

* A bit of refactoring in bindExplicitTKTele, to avoid the
  footwork with Either.  Simpler now.

* Move promoteTyVar from GHC.Tc.Solver to GHC.Tc.Utils.TcMType

Fixes #16245 (comment 211369), memorialised as
  typeecheck/polykinds/T16245a
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#4aad0050db1a8a20db8bbca149111de99cb299c9">
compiler/GHC/Core/TyCon.hs
</a>
</li>
<li class="file-stats">
<a href="#e4b9d5e9d2de37561bfd06a2c97a5c924a1bab76">
compiler/GHC/Tc/Errors.hs
</a>
</li>
<li class="file-stats">
<a href="#897218b3e24728ae9e5b0329b949493f1ede80fb">
compiler/GHC/Tc/Errors/Hole.hs
</a>
</li>
<li class="file-stats">
<a href="#b18f1cc437ab64ccd37a7cae3b8c3f9071aef45e">
compiler/GHC/Tc/Gen/Default.hs
</a>
</li>
<li class="file-stats">
<a href="#9355bef855426caf5f526925edf351b20f9a86c4">
compiler/GHC/Tc/Gen/HsType.hs
</a>
</li>
<li class="file-stats">
<a href="#eade747fa0a15693c67617629e286714fce958e4">
compiler/GHC/Tc/Gen/Sig.hs
</a>
</li>
<li class="file-stats">
<a href="#9ea832ccdb4b5f7508a1efd6caedeafa16b269e7">
compiler/GHC/Tc/Gen/Splice.hs
</a>
</li>
<li class="file-stats">
<a href="#e65390fa5a32c453a81a1c9a3e1c4464d155ca4a">
compiler/GHC/Tc/Module.hs
</a>
</li>
<li class="file-stats">
<a href="#54436e21ea530a66a8a71bcc01c836f4740b8f02">
compiler/GHC/Tc/Solver.hs
</a>
</li>
<li class="file-stats">
<a href="#83d23a46bb6cdc8b1edc16f1fd2c8f5c53e2c9ca">
compiler/GHC/Tc/TyCl.hs
</a>
</li>
<li class="file-stats">
<a href="#e63425e031ffe9350ee6b1687e506aaea75d11e1">
compiler/GHC/Tc/TyCl/Instance.hs
</a>
</li>
<li class="file-stats">
<a href="#46e7b59eca287d43c19d0d8902b41f5d04f0d268">
compiler/GHC/Tc/Types/Evidence.hs
</a>
</li>
<li class="file-stats">
<a href="#94c96afe1bb3b771ffbcfeeca34ce43ebbe76ccb">
compiler/GHC/Tc/Utils/TcMType.hs
</a>
</li>
<li class="file-stats">
<a href="#5dac619989e8509003cf7b463c100f5cc56072a3">
compiler/GHC/Types/Var.hs
</a>
</li>
<li class="file-stats">
<a href="#85c07986c623f3180b40021d7109edd1e6a71a93">
docs/users_guide/9.0.1-notes.rst
</a>
</li>
<li class="file-stats">
<a href="#afd1105d8e32dc50acf9fc381b4433a3bcd009cf">
docs/users_guide/exts/explicit_forall.rst
</a>
</li>
<li class="file-stats">
<a href="#ed75822e0b6142f196a6abeb623c7669d31b4711">
docs/users_guide/exts/instances.rst
</a>
</li>
<li class="file-stats">
<a href="#b02c1c6109c60b8f685234b0dbaabf6c79fed2a2">
docs/users_guide/ghci.rst
</a>
</li>
<li class="file-stats">
<a href="#05e2feaa7ccbd427e12a90d25808ead5ec587c63">
testsuite/tests/dependent/should_fail/T13780a.stderr
</a>
</li>
<li class="file-stats">
<a href="#3a3191d9f091d02c92fd2912102449b4d22ac948">
testsuite/tests/dependent/should_fail/T14066e.stderr
</a>
</li>
<li class="file-stats">
<a href="#5f1bd70993e2ae7de73a4c3fc129456edb4bfff1">
testsuite/tests/dependent/should_fail/T15859.hs
</a>
</li>
<li class="file-stats">
<a href="#abfada300dedc6705218541bc48e1101427677ea">
testsuite/tests/dependent/should_fail/T15859.stderr
</a>
</li>
<li class="file-stats">
<a href="#2645261959ee6f55d28f01da0555aed9b37316b3">
<span class="new-file">
+
testsuite/tests/dependent/should_fail/T15859a.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#023b3965765fa345baf2744d82cb370a6f4c0b2d">
<span class="new-file">
+
testsuite/tests/dependent/should_fail/T15859a.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#c43a5709183a23c7617175187bb011cd546193ef">
testsuite/tests/dependent/should_fail/T16344a.stderr
</a>
</li>
<li class="file-stats">
<a href="#ff9e00d3839a68830e26f2566987483d69b42545">
testsuite/tests/dependent/should_fail/all.T
</a>
</li>
<li class="file-stats">
<a href="#01017592c9aefe1ef6b4f8faf2b9de610d2b119b">
testsuite/tests/gadt/T12468.stderr
</a>
</li>
<li class="file-stats">
<a href="#355bd53b941d207ddb05a728f55ec34cffe7fbac">
testsuite/tests/gadt/gadt-escape1.stderr
</a>
</li>
<li class="file-stats">
<a href="#2bf6cdd136213ff18813a28cabbac99d53bcfd6c">
testsuite/tests/gadt/gadt13.stderr
</a>
</li>
<li class="file-stats">
<a href="#4e5195359b1361b10ccc0376ef0d3a2eea8deb67">
testsuite/tests/gadt/gadt7.stderr
</a>
</li>
</ul>
<h5>The diff was not included because it is too large.</h5>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #777;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/commit/710aad27519856b30a60f69bbf2910298e650166">View it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.haskell.org.
If you'd like to receive fewer emails, you can
adjust your notification settings.
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Commit","url":"https://gitlab.haskell.org/ghc/ghc/-/commit/710aad27519856b30a60f69bbf2910298e650166"}}</script>


</p>
</div>
</body>
</html>