<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi,<br>
<br>
The named chunks can be positioned through the use of the export
list syntax:<br>
<br>
module Foo<br>
( main <br>
-- * Section name that will appear<br>
--<br>
-- $chunk<br>
)<br>
<br>
This should produce a free section that is not linked to any
exported item.<br>
I see you're already using them though, so maybe I am
understanding something else?<br>
</p>
<div class="moz-cite-prefix">Le 14/09/2021 à 16:00, Sebastian Graf a
écrit :<br>
</div>
<blockquote type="cite"
cite="mid:CAAS+=P-iW-T58w2XH7Z3BBDLqxfRmpxjfAeRCswLd3capA8fFg@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div>Hi,</div>
<div><br>
</div>
<div>I've been using Haddock's named chunks feature too when
writing the docs for selective lambda lifting.</div>
<div>This is the result: <a
href="https://hackage.haskell.org/package/ghc-8.10.2/docs/StgLiftLams.html"
moz-do-not-send="true" class="moz-txt-link-freetext">https://hackage.haskell.org/package/ghc-8.10.2/docs/StgLiftLams.html</a>,
and this is how the source code looks: <a
href="https://hackage.haskell.org/package/ghc-8.10.2/docs/src/StgLiftLams.html"
moz-do-not-send="true" class="moz-txt-link-freetext">https://hackage.haskell.org/package/ghc-8.10.2/docs/src/StgLiftLams.html</a></div>
<div><br>
</div>
<div>I quite like it. As you can see, I enabled both the
existing Notes workflow and Haddock to work with it. It takes
a bit of annoying extra work, though. Ideally, Haddock would
simply recognise the Note syntax directly or provide a similar
alternative.</div>
<div><br>
</div>
<div>And as far as linking is concerned: Sure, haddocks don't
have a title to refer to. But you can always link to them by
linking to the syntactic entity! For example, if I want to
link to DiagnosticReason from Severity, I can simply do so by
saying "Also see 'Severity'".</div>
<div>I do admit this might not be enough info at the reference
site to determine whether the haddock linked to is relevant to
the particular goal I want to achieve. Also as Simon points
out, there are Notes that don't have a clear "owner".</div>
<div><br>
</div>
<div>
<div>Heck, even writing an unused binding
`_Late_lambda_lifting_in_STG` and put the haddocks there
would work, I suppose. We could simply link to it with
'_Late_lambda_lifting_in_STG' from other haddocks.</div>
</div>
<div><br>
</div>
<div>My point is: If we managed to have something quite like
named chunks, but with a title and one place it gets rendered
and then linked to (I don't like that named chunks are inlined
into every use site), we could probably agree on using that.</div>
<div>Also I'd like to see the Notes rendered *regardless* of
whether the thing it is attached to is exported. That would
make Notes a lot more accessible.</div>
<div><br>
</div>
<div>Sebastian<br>
</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Am Di., 14. Sept. 2021 um
14:32 Uhr schrieb Hécate <<a
href="mailto:hecate@glitchbra.in" moz-do-not-send="true"
class="moz-txt-link-freetext">hecate@glitchbra.in</a>>:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>> today’s Haddock doesn’t understand Notes. But we
could fix that if we were minded to.<br>
<br>
I may have missed an episode or two here but what prevents
us from writing Notes as Named Chunks¹, write them where
Haddock expects you to put documentation, and refer to
them from the relevant spot in the code?<br>
Viktor (in CC) has done a wonderful work at producing nice
layouts for Haddocks in base, and we could learn a couple
of lessons from his MRs.<br>
</p>
<p>---</p>
<p>Now, on the matter of improving Haddock to understand
GHC's notes, I'd like to remind everyone that Haddock is
currently understaffed in terms of feature development,
and I would like to call to everyone with experience
dealing with its codebase to give a hand in refactoring,
dusting off and improving the code so that its
maintainability is not jeopardised by people simply going
elsewhere. <br>
Our bus factor (or as I like to call it, circus factor),
is quite terrifying considering the importance of the tool
in our ecosystem.<br>
<br>
<br>
¹
<a
href="https://haskell-haddock.readthedocs.io/en/latest/markup.html#named-chunks"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://haskell-haddock.readthedocs.io/en/latest/markup.html#named-chunks</a><br>
<br>
</p>
<div>Le 14/09/2021 à 13:56, Simon Peyton Jones via ghc-devs
a écrit :<br>
</div>
<blockquote type="cite">
<div>
<p class="MsoNormal">Alfredo writes (below for full
thread)</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal" style="margin-left:36pt">That is a
deceptively simple question you ask there :-) I don't
have a strong view myself, but I can offer the
perspective of somebody who was been for a long time
on the "other side of the trenches" (i.e. working
Haskell programmer, not necessarily working GHC
programmer):</p>
<p class="MsoNormal" style="margin-left:36pt"> </p>
<p class="MsoNormal" style="margin-left:36pt">* Blog
post: yes, it's true that is a snapshot, and it's true
that is not under GHC's gitlab umbrella, so I wouldn't
treat it as a reliable source of documentation (for
the reasons you also explain) but it's surely a good
testament that "at this point in time, for this
particular GHC commit, things were this way);</p>
<p class="MsoNormal" style="margin-left:36pt"> </p>
<p class="MsoNormal" style="margin-left:36pt">* The wiki
page: in the past, when I wanted to learn more about
some GHC feature, Google would point me to the
relevant Wiki page on the GHC repo describing such a
feature, but I have to say I have almost always
dismissed it, because everybody knows Wikis are
seldomly up-to-date :) In order for a Wiki page to
work we would have to at least add a banner at the top
that states this can be trusted as a reliable source
of information, and offer in the main section the
current, up-to-date design. We can still offer the
historical breakdown of the designs in later sections,
as it's still valuable info to keep;</p>
<p class="MsoNormal" style="margin-left:36pt"> </p>
<p class="MsoNormal" style="margin-left:36pt">* GHC
notes: I have always considered GHC notes a
double-edge sword -- from one side they are immensely
useful when navigating the source code, but <span
style="font-size:10pt;font-family:"Arial",sans-serif;color:rgb(26,26,26)">these
won't be rendered in the Hackage's haddocks, and
this is not helpful for GHC-the-library users
willing to understand how to use (or which is the
semantic of) a particular type (sure, one can click
"Show Source" on Hackage but it's an annoying extra
step to do just to hunt for notes). W</span>e
already have Notes for this work in strategic places
-- even better, we have proper Haddock comments for
things like "Severity vs DiagnosticReason" , e.g. <a
href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.haskell.org%2Fghc%2Fghc%2F-%2Fblob%2Fmaster%2Fcompiler%2FGHC%2FTypes%2FError.hs%23L279&data=04%7C01%7Csimonpj%40microsoft.com%7Cdb46814133bc4404b6d308d9685a487e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637655559255320972%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=WU2dKu2Q%2FFdwntJ2h%2F6zO1Ic01c9o0VhZc5JrE0AurY%3D&reserved=0"
target="_blank" moz-do-not-send="true">
https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Types/Error.hs#L279</a>
.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span
style="font-size:10pt;font-family:"Arial",sans-serif;color:rgb(26,26,26)"> </span></p>
<p class="MsoNormal"><span>Yes Haddock doesn’t
understand Notes but that’s a deficiency in
Haddock! There so much in GHC that simply does not
fit well with the Haddocks attached to a particular
data decl or function. We need Notes to explain how
all the moving parts fit together, and to point to
them. </span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal" style="margin-left:36pt">Even
better, we have proper Haddock comments for things
like "Severity vs DiagnosticReason" </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span>But I don’t think this is
better – I think it is significantly worse! In the
case you cite, the Haddock is about
DiagnosticReason, and mentions Severity only
incidentally. I bet that the Haddock for Severity
doesn’t refer to this. Nor is there a clear “Note
[Severity vs DiagnosticReason]” title that bits of
code across GHC can refer to by saying “See Note
[Severity vs DiagnosticReason]”. It’s far less
satisfactory (to me) than a single Note that</span></p>
<ul style="margin-top:0cm" type="disc">
<li style="margin-left:2.7pt"><span>covers just <b>one
topic</b> (the difference between Severity and
DiagnosticReason, rather than fully describing
either</span></li>
<li style="margin-left:2.7pt"><span>can be <b>pointed
to</b> symmetrically from both Severity and
DiagnosticReason</span></li>
<li style="margin-left:2.7pt"><span>can be <b>pointed
to</b> by many other bits of code</span></li>
</ul>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>The way it is better is that
today’s Haddock doesn’t understand Notes. But we
could fix that if we were minded to.</span></p>
<p class="MsoNormal"><span><br>
Returning to how to document the error-message
architecture, if you’d prefer to use a Note than a
wiki page, that’s fine. But please write that
Overview Note that explains all the pieces, points
to them one by one. And then copiously refer to
that Note from all those places, so people will
update it.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal" style="margin-left:36pt"><u>Hopefully
as the time goes by the new design will "spread"
across all the different peers working on GHC, and
it will become "second nature".</u></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>I really don’t think that
will happen unless there is a Note that explains
what the new design is! Lacking this explicit
design, everyone will infer their own mental model
of how it all works from sundry scattered clues –
and those mental models will differ. So instead of
one thing “spreading” a dozen subtly different
things will spread. And then the next one, confused
by these slightly different clues, will be even less
coherent.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Let’s have one,
fully-explicit version of The Plan that we
constantly refer to.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>cc’ing ghc-devs because we
must constantly question and refine how we describe
and document GHC.</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Simon</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span style="font-size:8pt">PS: I
am leaving Microsoft at the end of November 2021, at
which point <a href="mailto:simonpj@microsoft.com"
target="_blank" moz-do-not-send="true"><span
style="color:rgb(5,99,193)">simonpj@microsoft.com</span></a>
will cease to work. Use <a
href="mailto:simon.peytonjones@gmail.com"
target="_blank" moz-do-not-send="true"><span
style="color:rgb(5,99,193)">simon.peytonjones@gmail.com</span></a>
instead. (For now, it just forwards to <a
href="mailto:simonpj@microsoft.com"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">simonpj@microsoft.com</a>.)</span></p>
<p class="MsoNormal"><span> </span></p>
<div style="border-color:currentcolor currentcolor
currentcolor blue;border-style:none none none
solid;border-width:medium medium medium
1.5pt;padding:0cm 0cm 0cm 4pt">
<div>
<div style="border-color:rgb(225,225,225)
currentcolor currentcolor;border-style:solid none
none;border-width:1pt medium medium;padding:3pt
0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span
lang="EN-US"> Alfredo Di Napoli <a
href="mailto:alfredo.dinapoli@gmail.com"
target="_blank" moz-do-not-send="true"><alfredo.dinapoli@gmail.com></a>
<br>
<b>Sent:</b> 26 August 2021 07:25<br>
<b>To:</b> Simon Peyton Jones <a
href="mailto:simonpj@microsoft.com"
target="_blank" moz-do-not-send="true"><simonpj@microsoft.com></a><br>
<b>Cc:</b> <a href="mailto:rae@richarde.dev"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">rae@richarde.dev</a><br>
<b>Subject:</b> Re: [Haskell Community]
[Links] [Well-Typed Blog] The new GHC
diagnostic infrastructure</span></p>
</div>
</div>
<p class="MsoNormal"> </p>
<div>
<div>
<div>
<div>
<p class="MsoNormal"
style="margin-right:0cm;margin-bottom:6pt;margin-left:0cm">Hello
Simon!</p>
</div>
<p class="MsoNormal"
style="margin-right:0cm;margin-bottom:6pt;margin-left:0cm"> </p>
<div>
<div>
<p class="MsoNormal"
style="margin-right:0cm;margin-bottom:6pt;margin-left:0cm">On
Wed, 25 Aug 2021 at 13:36, Simon Peyton
Jones <<a
href="mailto:simonpj@microsoft.com"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">simonpj@microsoft.com</a>>
wrote:</p>
</div>
<blockquote style="border-color:currentcolor
currentcolor currentcolor
rgb(204,204,204);border-style:none none none
solid;border-width:medium medium medium
1pt;padding:0cm 0cm 0cm
6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal">Alfredo</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Thanks for all the
work you are doing on GHC’s error
message infrastructure. Your blog
post gives a great overview.</p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">Thanks, and I am glad
you enjoyed it :) </p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<blockquote style="border-color:currentcolor
currentcolor currentcolor
rgb(204,204,204);border-style:none none none
solid;border-width:medium medium medium
1pt;padding:0cm 0cm 0cm
6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal"> </p>
<p class="MsoNormal">As you know I’m
very keen for GHC to have a Note or
wiki page that gives a solid,
up-to-date overview of all the moving
parts. (NOT the design alternatives,
nor the time sequence; just the
outcome.) This is incredibly useful
for our future selves; and it helps
ensure that people understand (say)
the difference between Severity and
DiagnosticReason, and use them
correctly.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">So the question is:
where is the canonical overview? It
could be</p>
<ul type="disc">
<li> Your blog post below. But that is
a snapshot… you aren’t going to go
back to edit it as the design
evolves. And it’s not in the repo.</li>
<li> The wiki page: <a
href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.haskell.org%2Fghc%2Fghc%2F-%2Fwikis%2FErrors-as-(structured)-values&data=04%7C01%7Csimonpj%40microsoft.com%7Cdb46814133bc4404b6d308d9685a487e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637655559255310976%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=A%2FyWqfqPWPYUk3EpaorYP29JvLIhgcdSdcYceFIKvhc%3D&reserved=0"
target="_blank"
moz-do-not-send="true">
https://gitlab.haskell.org/ghc/ghc/-/wikis/Errors-as-(structured)-values</a>.
But it’s hard to keep up to date (it
was last edited 3 months ago).</li>
<li> Note(s) in the code. We seem to
use this increasingly, and it has
the great merit of being part of the
source code itself. But then we
need clear pointer to the canonical
overview Notes, and need to make
sure they are up to date.</li>
</ul>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I’m not advocating
any particular path here… just wanting
to be sure that we end up with a good
overview somewhere! What is your view?</p>
<p class="MsoNormal"> </p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal"><u>TL;DR Probably a
combo of a well-written (and up-to-date
Wiki) plus some carefully added Notes
(and Haddock comments) in GHC might do
the trick.</u></p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">That is a deceptively
simple question you ask there :-) I don't
have a strong view myself, but I can offer
the perspective of somebody who was been
for a long time on the "other side of the
trenches" (i.e. working Haskell
programmer, not necessarily working GHC
programmer):</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">* Blog post: yes, it's
true that is a snapshot, and it's true
that is not under GHC's gitlab umbrella,
so I wouldn't treat it as a reliable
source of documentation (for the reasons
you also explain) but it's surely a good
testament that "at this point in time, for
this particular GHC commit, things were
this way);</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">* The wiki page: in the
past, when I wanted to learn more about
some GHC feature, Google would point me to
the relevant Wiki page on the GHC repo
describing such a feature, but I have to
say I have almost always dismissed it,
because everybody knows Wikis are seldomly
up-to-date :) In order for a Wiki page to
work we would have to at least add a
banner at the top that states this can be
trusted as a reliable source of
information, and offer in the main section
the current, up-to-date design. We can
still offer the historical breakdown of
the designs in later sections, as it's
still valuable info to keep;</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">* GHC notes: I have
always considered GHC notes a double-edge
sword -- from one side they are immensely
useful when navigating the source code,
but <span
style="font-size:10pt;font-family:"Arial",sans-serif;color:rgb(26,26,26)">these
won't be rendered in the Hackage's
haddocks, and this is not helpful for
GHC-the-library users willing to
understand how to use (or which is the
semantic of) a particular type (sure,
one can click "Show Source" on Hackage
but it's an annoying extra step to do
just to hunt for notes). W</span>e
already have Notes for this work in
strategic places -- even better, we have
proper Haddock comments for things like
"Severity vs DiagnosticReason" , e.g. <a
href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.haskell.org%2Fghc%2Fghc%2F-%2Fblob%2Fmaster%2Fcompiler%2FGHC%2FTypes%2FError.hs%23L279&data=04%7C01%7Csimonpj%40microsoft.com%7Cdb46814133bc4404b6d308d9685a487e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637655559255320972%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=WU2dKu2Q%2FFdwntJ2h%2F6zO1Ic01c9o0VhZc5JrE0AurY%3D&reserved=0"
target="_blank" moz-do-not-send="true">
https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Types/Error.hs#L279</a>
.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal"><u>So, in practical
terms, I suggest we (I) give the Wiki a
little overhaul to add at the top the
current design (or anything not captured
directly in GHC's source code) and I
will keep an eye on the GHC notes and
Haddock comments to see if there is
anything worth adding. Hopefully as the
time goes by the new design will
"spread" across all the different peers
working on GHC, and it will become
"second nature".</u></p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">Hope it helps, and
sorry for the long ramble!</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">Alfredo</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<blockquote style="border-color:currentcolor
currentcolor currentcolor
rgb(204,204,204);border-style:none none none
solid;border-width:medium medium medium
1pt;padding:0cm 0cm 0cm
6pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal">Thanks</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Simon</p>
<p class="MsoNormal"> </p>
<div style="border-color:currentcolor
currentcolor currentcolor
blue;border-style:none none none
solid;border-width:medium medium
medium 1.5pt;padding:0cm 0cm 0cm 4pt">
<div>
<div
style="border-color:rgb(225,225,225)
currentcolor
currentcolor;border-style:solid
none none;border-width:1pt medium
medium;padding:3pt 0cm 0cm">
<p class="MsoNormal"><b><span
lang="EN-US">From:</span></b><span
lang="EN-US"> Alfredo Di
Napoli via Haskell Community
<<a
href="mailto:discourse@haskell.org"
target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">discourse@haskell.org</a>>
<br>
<b>Sent:</b> 23 August 2021
11:26<br>
<b>To:</b> Simon Peyton Jones
<<a
href="mailto:simonpj@microsoft.com"
target="_blank"
moz-do-not-send="true"
class="moz-txt-link-freetext">simonpj@microsoft.com</a>><br>
<b>Subject:</b> [Haskell
Community] [Links] [Well-Typed
Blog] The new GHC diagnostic
infrastructure</span></p>
</div>
</div>
<p class="MsoNormal"> </p>
<div>
<div style="margin-bottom:18.75pt">
<table cellspacing="0"
cellpadding="0" border="0">
<tbody>
<tr>
<td
style="width:41.25pt;padding:0cm"
width="55" valign="top">
<p class="MsoNormal"><span
style="font-family:"Helvetica",sans-serif;border:1pt solid
windowtext;padding:0cm"><img
style="width:
0.4687in; height:
0.4687in;"
id="gmail-m_-6284922900694096142gmail-m_4686577435606355590Picture_x0020_1"
src="cid:part1.HziTHDWu.AF9zVvun@glitchbra.in" alt="Image removed by
sender." class=""
width="45"
height="45"
border="0"></span></p>
</td>
<td style="padding:0cm">
<p class="MsoNormal"><span
style="font-family:"Helvetica",sans-serif"><a
href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdiscourse.haskell.org%2Fu%2Fadinapoli&data=04%7C01%7Csimonpj%40microsoft.com%7Cdb46814133bc4404b6d308d9685a487e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637655559255330973%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=PgX4crGMBTWVwI2UMcq%2BIFDZ0dDr%2FRWNYZdV%2Fqi8mX8%3D&reserved=0"
target="_blank"
moz-do-not-send="true"><b><span
style="font-size:10pt;font-family:"Tahoma",sans-serif;color:rgb(0,102,153);text-decoration:none">adinapoli</span></b></a>
<br>
</span><span
style="font-size:8.5pt;font-family:"Tahoma",sans-serif;color:rgb(153,153,153)">August
23</span><span
style="font-family:"Helvetica",sans-serif">
</span></p>
</td>
</tr>
</tbody>
</table>
<div>
<div style="border:4.5pt solid
rgb(233,233,233);padding:9pt
19pt 9pt 9pt">
<div>
<p class="MsoNormal"><span
style="border:1pt solid
windowtext;padding:0cm"
lang="EN-US"><img
style="width:
0.3333in; height:
0.3333in;"
id="gmail-m_-6284922900694096142gmail-m_4686577435606355590Picture_x0020_2"
src="cid:part1.HziTHDWu.AF9zVvun@glitchbra.in" alt="Image removed by
sender." class=""
width="32" height="32"
border="0"></span><span
lang="EN-US"><a
href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwell-typed.com%2Fblog%2F2021%2F08%2Fthe-new-ghc-diagnostic-infrastructure%2F&data=04%7C01%7Csimonpj%40microsoft.com%7Cdb46814133bc4404b6d308d9685a487e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637655559255340965%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=X51rdrGoKmUBPB8upLVL69LyInf%2BsYYQqM%2Fd4PnLnGQ%3D&reserved=0"
target="_blank"
moz-do-not-send="true"><b><span
style="color:rgb(0,102,153);text-decoration:none">well-typed.com</span></b></a>
</span></p>
</div>
<div>
<p class="MsoNormal"><b><span
lang="EN-US">Error!
Filename not
specified.</span></b></p>
<h3
style="margin-bottom:15pt"><span
style="font-size:13pt"
lang="EN-US"><a
href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwell-typed.com%2Fblog%2F2021%2F08%2Fthe-new-ghc-diagnostic-infrastructure%2F&data=04%7C01%7Csimonpj%40microsoft.com%7Cdb46814133bc4404b6d308d9685a487e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637655559255340965%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=X51rdrGoKmUBPB8upLVL69LyInf%2BsYYQqM%2Fd4PnLnGQ%3D&reserved=0"
target="_blank"
moz-do-not-send="true"><span
style="color:rgb(0,102,153);text-decoration:none">The new GHC diagnostic
infrastructure -
Well-Typed: The
Haskell Consultants</span></a></span></h3>
</div>
</div>
</div>
</div>
<div>
<div class="MsoNormal"
style="text-align:center"
align="center"><span
style="color:rgb(102,102,102)"
lang="EN-US">
<hr width="100%" size="1"
align="center"> </span></div>
<p><span
style="color:rgb(102,102,102)"
lang="EN-US"><a
href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdiscourse.haskell.org%2Ft%2Fwell-typed-blog-the-new-ghc-diagnostic-infrastructure%2F2918%2F1&data=04%7C01%7Csimonpj%40microsoft.com%7Cdb46814133bc4404b6d308d9685a487e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637655559255350960%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=tOfAGO5BbhanwBDgMA6eqpgKCLcLTtkum8QOuMsROdc%3D&reserved=0"
target="_blank"
moz-do-not-send="true"><b><span
style="color:white;border:3pt solid
rgb(47,112,172);padding:0cm;background:rgb(47,112,172)
none repeat scroll 0%
0%;text-decoration:none">Visit
Topic</span></b></a> or
reply to this email to
respond.</span></p>
</div>
<div>
<p><span
style="color:rgb(102,102,102)"
lang="EN-US">You are receiving
this because you enabled
mailing list mode.</span></p>
<p><span
style="color:rgb(102,102,102)"
lang="EN-US">To unsubscribe
from these emails, <a
href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdiscourse.haskell.org%2Femail%2Funsubscribe%2F962dfad7651b2ce3d7e30ba9267bdb857c77298d6fdec12626b65e014aaeee33&data=04%7C01%7Csimonpj%40microsoft.com%7Cdb46814133bc4404b6d308d9685a487e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637655559255360954%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=4616hEpSSUcOZ5zQYZMmEbF6mTJcIVKx2nlgA8ENsHM%3D&reserved=0"
target="_blank"
moz-do-not-send="true"> <b><span
style="color:rgb(102,102,102);text-decoration:none">click here</span></b></a>.</span></p>
</div>
</div>
<div>
<p class="MsoNormal"
style="line-height:0%"><span
style="font-size:11.5pt;font-family:Courier"
lang="EN-US">
</span></p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
ghc-devs mailing list
<a href="mailto:ghc-devs@haskell.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">ghc-devs@haskell.org</a>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a>
</pre>
</blockquote>
<pre cols="72">--
Hécate ✨
🐦: @TechnoEmpress
IRC: Hecate
WWW: <a href="https://glitchbra.in" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://glitchbra.in</a>
RUN: BSD</pre>
</div>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">ghc-devs@haskell.org</a><br>
<a
href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs"
rel="noreferrer" target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote>
</div>
</blockquote>
<pre class="moz-signature" cols="72">--
Hécate ✨
🐦: @TechnoEmpress
IRC: Hecate
WWW: <a class="moz-txt-link-freetext" href="https://glitchbra.in">https://glitchbra.in</a>
RUN: BSD</pre>
</body>
</html>