<!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/T16762
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/f165f3380b346a4a37e798074ac7d23d8e650551">f165f338</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-10-13T09:42:14+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Replace HsImplicitBndrs with HsOuterTyVarBndrs

This refactors the GHC AST to remove `HsImplicitBndrs` and replace it with
`HsOuterTyVarBndrs`, a type which records whether the outermost quantification
in a type is explicit (i.e., with an outermost, invisible `forall`) or
implicit. As a result of this refactoring, it is now evident in the AST where
the `forall`-or-nothing rule applies: it's all the places that use
`HsOuterTyVarBndrs`. See the revamped `Note [forall-or-nothing rule]` in
`GHC.Hs.Type` (previously in `GHC.Rename.HsType`).

Moreover, the places where `ScopedTypeVariables` brings lexically scoped type
variables into scope are a subset of the places that adhere to the
`forall`-or-nothing rule, so this also makes places that interact with
`ScopedTypeVariables` easier to find. See the revamped
`Note [Lexically scoped type variables]` in `GHC.Hs.Type` (previously in
`GHC.Tc.Gen.Sig`).

`HsOuterTyVarBndrs` are used in type signatures (see `HsOuterSigTyVarBndrs`)
and type family equations (see `HsOuterFamEqnTyVarBndrs`). The main difference
between the former and the latter is that the former cares about specificity
but the latter does not.

There are a number of knock-on consequences:

* There is now a dedicated `HsSigType` type, which is the combination of
  `HsOuterSigTyVarBndrs` and `HsType`. `LHsSigType` is now an alias for an
  `XRec` of `HsSigType`.
* TODO RGS: Describe typechecker changes

Fixes #16762. Bumps the Haddock submodule.

Co-authored-by: Simon Peyton Jones <simonpj@microsoft.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/22e49693ccde7e2ca4d9d1a279791b76c3c428bd">22e49693</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-10-13T09:42:15+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Wibbbles
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2e84c96e7e7f92d04a4379c70a496454056842f7">2e84c96e</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-10-13T09:42:15+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">More wibbles
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/40a74cdc916f1a130e29709af1835f092725cd21">40a74cdc</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-10-13T09:42:15+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">More wibbles
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cd974c8aa448d802b74e4818b9fed8a6b76ecdfc">cd974c8a</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-10-13T09:42:15+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">More wibbles --- getting there
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d4013d21fa41ccdbda149e7886431006a1b027d4">d4013d21</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-10-13T09:54:15+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Push through some Haddock changes, disable warnings in GHC.Iface.Ext.Ast for now
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c3bed6a24777b777bca1fdbd2125d094c40ff9dc">c3bed6a2</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-10-13T09:54:15+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">More wibbles
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/396fce5438b7084b04dfe60826323af1d58c8d78">396fce54</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-10-13T09:54:17+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use TTG in HsOuterTyVarBndrs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/450f3981591d5a087b305ced20032fd19521d7ba">450f3981</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-10-13T09:54:18+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add some documentation, minor code cleanup
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/10cca24be0be1404066628eb9e93a46a1ae4abea">10cca24b</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2020-10-13T09:54:18+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Skolemise PatSyns
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/08e614155f21d9884dbe8bdbae4e2ec25deafcef">08e61415</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2020-10-13T09:54:18+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't freshen when skolemising
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1805c836b565e10029d0a9ebe2e34f6688b45c99">1805c836</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-10-13T09:54:18+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Wibbles from Simon
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/be365ada25c0300f073506cd22f6a92bfc554f70">be365ada</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2020-10-13T09:54:18+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Still freshen existentials, though.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fd32885aa156b56ddf7d2300d850337a55713010">fd32885a</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-10-13T23:31:51+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Yet more wibbles
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f34e6cfb59470f0253433d0102baa683db0f9c59">f34e6cfb</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-10-13T23:44:31+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Accept new DumpRenamedAst stderr
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/324470433405fc434b27cf2ed2ff4d00242f1cac">32447043</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-10-13T23:45:04+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix a PolyKinds buglet
</pre>
</li>
</ul>
<h4>20 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#75bfcd03f3ba9315d33104fcb0424c6bfeb4e334">
compiler/GHC/Hs/Decls.hs
</a>
</li>
<li class="file-stats">
<a href="#576dff4e64fa03683ffc5dcdd58284acdd70bc8e">
compiler/GHC/Hs/Extension.hs
</a>
</li>
<li class="file-stats">
<a href="#9f00edfedb0f969865b049a78de3866545b4a60b">
compiler/GHC/Hs/Instances.hs
</a>
</li>
<li class="file-stats">
<a href="#018be522bc4813b147a1525e4f96a7a493207d96">
compiler/GHC/Hs/Type.hs
</a>
</li>
<li class="file-stats">
<a href="#7a1af22e4c32b9aa6ec708d9d3788e1c4db5da9a">
compiler/GHC/Hs/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#ea46b374e004d4416e29a563ee063542f98e48c5">
compiler/GHC/HsToCore/Docs.hs
</a>
</li>
<li class="file-stats">
<a href="#3c19c0be465f9a28d7b69f89c55648080fcc37eb">
compiler/GHC/HsToCore/Quote.hs
</a>
</li>
<li class="file-stats">
<a href="#649144a78135a23cabfc90dd83c4aabf448eb6ab">
compiler/GHC/Iface/Ext/Ast.hs
</a>
</li>
<li class="file-stats">
<a href="#bf951467d4a9aa443cb109cb4c84a2891945649b">
compiler/GHC/Parser.y
</a>
</li>
<li class="file-stats">
<a href="#446cb12ca6cefaf1c6eb79b7db643632744263c7">
compiler/GHC/Parser/PostProcess.hs
</a>
</li>
<li class="file-stats">
<a href="#13755bdc5d6c6b4c6f31604eb0da778521355795">
compiler/GHC/Parser/PostProcess/Haddock.hs
</a>
</li>
<li class="file-stats">
<a href="#892acbb198a9095c917740d3c1297b56df4e3b7e">
compiler/GHC/Rename/HsType.hs
</a>
</li>
<li class="file-stats">
<a href="#7dd1cd0f6f2164a14c83d9aa564dd32bc30e447a">
compiler/GHC/Rename/Module.hs
</a>
</li>
<li class="file-stats">
<a href="#e05ee69330b0f7088f11a5f3567137547489664d">
compiler/GHC/Rename/Names.hs
</a>
</li>
<li class="file-stats">
<a href="#939d24c1002dc322659c1f67c9f3d2db2ae31dd4">
compiler/GHC/Rename/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#b768fdf8e0594bf98104ef18145fc9f16550bc06">
compiler/GHC/Tc/Deriv.hs
</a>
</li>
<li class="file-stats">
<a href="#3aa56839e36b2219f9ad54f5646ef3005da9c672">
compiler/GHC/Tc/Deriv/Generate.hs
</a>
</li>
<li class="file-stats">
<a href="#e4b9d5e9d2de37561bfd06a2c97a5c924a1bab76">
compiler/GHC/Tc/Errors.hs
</a>
</li>
<li class="file-stats">
<a href="#83f745d921da7adb739e81f83e1c07e723e4a789">
compiler/GHC/Tc/Gen/Bind.hs
</a>
</li>
<li class="file-stats">
<a href="#36920f1fa315563c590243b1b096096bc305ca70">
compiler/GHC/Tc/Gen/Head.hs
</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/-/compare/458da7dbd491bb21cf6a884d454f79ee2a97a5bd...324470433405fc434b27cf2ed2ff4d00242f1cac">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.



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