<!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 data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>


<style>img {
max-width: 100%; height: auto;
}
body {
font-size: 0.875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";'>
<div class="content">

<h3 style="margin-top: 20px; margin-bottom: 10px;">
sheaf pushed to branch wip/instd-quantifications at <a href="https://gitlab.haskell.org/ghc/ghc" style="color: #1068bf;">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
Commits:
</h4>
<ul>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f2e30b9ee8923add413d4de08d043e2da852b4c9" style="color: #1068bf;">f2e30b9e</a></strong>
<div>
<span> by sheaf </span> <i> at 2023-01-30T15:35:57+01:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TH: handle explicit quantification in instances

This patch adds support for explicitly-written quantification in
typeclass instances, such as:

  instance forall {k} (a :: k). C a
  deriving instance forall {k} (a :: k). D a

It does so by adding a field of type `Maybe (TyVarBndr Specificity)`
to both the `InstanceD` and `StandaloneDerivD` constructors of the
Template Haskell `Dec` datatype, and making appropriate use of it to
ensure that spliced declarations don't silently drop the user-written
quantification.

Fixes #21794
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
30 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#06764eb0158306b83ab1998d18316392a51838c2" style="color: #1068bf;">
compiler/GHC/Builtin/Names/TH.hs
</a>
</li>
<li class="file-stats">
<a href="#018be522bc4813b147a1525e4f96a7a493207d96" style="color: #1068bf;">
compiler/GHC/Hs/Type.hs
</a>
</li>
<li class="file-stats">
<a href="#3c19c0be465f9a28d7b69f89c55648080fcc37eb" style="color: #1068bf;">
compiler/GHC/HsToCore/Quote.hs
</a>
</li>
<li class="file-stats">
<a href="#7dd1cd0f6f2164a14c83d9aa564dd32bc30e447a" style="color: #1068bf;">
compiler/GHC/Rename/Module.hs
</a>
</li>
<li class="file-stats">
<a href="#9ea832ccdb4b5f7508a1efd6caedeafa16b269e7" style="color: #1068bf;">
compiler/GHC/Tc/Gen/Splice.hs
</a>
</li>
<li class="file-stats">
<a href="#2eac51f9871ca0c0698aa1fc7f79c05ef8fc4a49" style="color: #1068bf;">
compiler/GHC/ThToHs.hs
</a>
</li>
<li class="file-stats">
<a href="#5dac619989e8509003cf7b463c100f5cc56072a3" style="color: #1068bf;">
compiler/GHC/Types/Var.hs
</a>
</li>
<li class="file-stats">
<a href="#56cab10ba9d31c526f47a492a4151a878077dc2d" style="color: #1068bf;">
docs/users_guide/9.8.1-notes.rst
</a>
</li>
<li class="file-stats">
<a href="#556b3bb7c75dfe37155d079195cb9671e3061783" style="color: #1068bf;">
libraries/template-haskell/Language/Haskell/TH/Lib.hs
</a>
</li>
<li class="file-stats">
<a href="#97b63f699307e7a6d92425265508cfc9e963c336" style="color: #1068bf;">
libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs
</a>
</li>
<li class="file-stats">
<a href="#8e584d18427a4bfabb2a7d6fce6efcbc2afb0954" style="color: #1068bf;">
libraries/template-haskell/Language/Haskell/TH/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#ed3c6537b674490396f9cab5cbb014ee54e71168" style="color: #1068bf;">
libraries/template-haskell/Language/Haskell/TH/Syntax.hs
</a>
</li>
<li class="file-stats">
<a href="#ee61d093f9c845475278836990fdde8877a1de02" style="color: #1068bf;">
libraries/template-haskell/changelog.md
</a>
</li>
<li class="file-stats">
<a href="#72f9bf974c5e9c038cc796db5195d89524be4e75" style="color: #1068bf;">
testsuite/tests/ghci/scripts/T4127.stdout
</a>
</li>
<li class="file-stats">
<a href="#296a2a82316f1adb70ab8463d4b5a2defd349005" style="color: #1068bf;">
testsuite/tests/safeHaskell/safeLanguage/SafeLang11_B.hs
</a>
</li>
<li class="file-stats">
<a href="#6fbb9d27fea91d77b77c3ecbe333ddd4484fbbca" style="color: #1068bf;">
testsuite/tests/safeHaskell/safeLanguage/SafeLang12_B.hs
</a>
</li>
<li class="file-stats">
<a href="#093adce96992e16296b6b54af53f118f88e58fbd" style="color: #1068bf;">
testsuite/tests/th/T11629.hs
</a>
</li>
<li class="file-stats">
<a href="#218014728961e26ebc9dde46c09e4268acf8aee3" style="color: #1068bf;">
testsuite/tests/th/T14888.stderr
</a>
</li>
<li class="file-stats">
<a href="#99afa57e678260d8375803a0c88ebd2a78821dfd" style="color: #1068bf;">
testsuite/tests/th/T1835.stdout
</a>
</li>
<li class="file-stats">
<a href="#4c62a913c50019ab48200c7ab51f7618daa683de" style="color: #1068bf;">
<span class="new-file">
+
testsuite/tests/th/T21794.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#2be1536c152c4dba5279fe2981b73886a11573da" style="color: #1068bf;">
<span class="new-file">
+
testsuite/tests/th/T21794.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#70ab3e026f16c89b385827ea6fe3683c4f6fdea9" style="color: #1068bf;">
testsuite/tests/th/T5452.hs
</a>
</li>
<li class="file-stats">
<a href="#1a4535f38f8456baa4f68fcd8eeff845f76abe72" style="color: #1068bf;">
testsuite/tests/th/T5700a.hs
</a>
</li>
<li class="file-stats">
<a href="#c95d9692eaa8f4104ed65f03eec938f1868f790d" style="color: #1068bf;">
testsuite/tests/th/T5886a.hs
</a>
</li>
<li class="file-stats">
<a href="#d6319a144e5ee7c02c0a589e5ec88959e7457840" style="color: #1068bf;">
testsuite/tests/th/T7532a.hs
</a>
</li>
<li class="file-stats">
<a href="#c4bdd7ea56d9871103d5a8c5f0410660beeb31e2" style="color: #1068bf;">
testsuite/tests/th/T8100.hs
</a>
</li>
<li class="file-stats">
<a href="#4bfdb4831cf1a8121f6e89b40ba84f40dde9389f" style="color: #1068bf;">
testsuite/tests/th/T8625.stdout
</a>
</li>
<li class="file-stats">
<a href="#7c5751f984ad310ad50c2d309347e5a26f5d6823" style="color: #1068bf;">
testsuite/tests/th/T8953.stderr
</a>
</li>
<li class="file-stats">
<a href="#6dca0c5213dec26699324b9cff95f6a6e9009c88" style="color: #1068bf;">
testsuite/tests/th/T9262.stderr
</a>
</li>
<li class="file-stats">
<a href="#1d00be1e33e0edd57fceaeed342423cc8cf6c509" style="color: #1068bf;">
testsuite/tests/th/TH_reifyExplicitForAllFams.stderr
</a>
</li>
</ul>
<h5 style="margin-top: 10px; margin-bottom: 10px; font-size: 0.875rem;">
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: #666;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f2e30b9ee8923add413d4de08d043e2da852b4c9" style="color: #1068bf;">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.haskell.org" style="color: #1068bf;">gitlab.haskell.org</a>. <a href="https://gitlab.haskell.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link" style="color: #1068bf;">Manage all notifications</a> · <a href="https://gitlab.haskell.org/help" target="_blank" rel="noopener noreferrer" class="help-link" style="color: #1068bf;">Help</a>
<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/f2e30b9ee8923add413d4de08d043e2da852b4c9"}}</script>


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