<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <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 class="moz-txt-link-freetext" href="https://haskell-haddock.readthedocs.io/en/latest/markup.html#named-chunks">https://haskell-haddock.readthedocs.io/en/latest/markup.html#named-chunks</a><br>
      <br>
    </p>
    <div class="moz-cite-prefix">Le 14/09/2021 à 13:56, Simon Peyton
      Jones via ghc-devs a écrit :<br>
    </div>
    <blockquote type="cite"
cite="mid:VI1PR83MB02695FEC9ED49208D5D9F6FAADDA9@VI1PR83MB0269.EURPRD83.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]-->
      <style>@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}@font-face
        {font-family:Courier;
        panose-1:2 7 4 9 2 2 5 2 4 4;}@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}h3
        {mso-style-priority:9;
        mso-style-link:"Heading 3 Char";
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:13.5pt;
        font-family:"Calibri",sans-serif;
        font-weight:bold;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}p.gmail-m4686577435606355590msolistparagraph, li.gmail-m4686577435606355590msolistparagraph, div.gmail-m4686577435606355590msolistparagraph
        {mso-style-name:gmail-m_4686577435606355590msolistparagraph;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}span.Heading3Char
        {mso-style-name:"Heading 3 Char";
        mso-style-priority:9;
        mso-style-link:"Heading 3";
        font-family:"Calibri Light",sans-serif;
        color:#1F3763;
        mso-fareast-language:EN-GB;}span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}.MsoPapDefault
        {mso-style-type:export-only;
        margin-top:6.0pt;
        margin-right:0cm;
        margin-bottom:6.0pt;
        margin-left:0cm;}div.WordSection1
        {page:WordSection1;}ol
        {margin-bottom:0cm;}ul
        {margin-bottom:0cm;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal">Alfredo writes (below for full thread)<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal" style="margin-left:36.0pt">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):<o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:36.0pt"><o:p> </o:p></p>
        <p class="MsoNormal" style="margin-left:36.0pt">* 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);<o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:36.0pt"><o:p> </o:p></p>
        <p class="MsoNormal" style="margin-left:36.0pt">* 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;<o:p></o:p></p>
        <p class="MsoNormal" style="margin-left:36.0pt"><o:p> </o:p></p>
        <p class="MsoNormal" style="margin-left:36.0pt">* 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:10.0pt;font-family:"Arial",sans-serif;color:#1A1A1A">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"
            moz-do-not-send="true">
https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Types/Error.hs#L279</a>
          .<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1A1A1A"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">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. 
            <o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal" style="margin-left:36.0pt">Even better, we
          have proper Haddock comments for things like "Severity vs
          DiagnosticReason"
          <o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">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<o:p></o:p></span></p>
        <ul style="margin-top:0cm" type="disc">
          <li class="MsoListParagraph"
            style="margin-left:2.7pt;mso-list:l0 level1 lfo2"><span
              style="mso-fareast-language:EN-US">covers just
              <b>one topic</b> (the difference between Severity and
              DiagnosticReason, rather than fully describing either<o:p></o:p></span></li>
          <li class="MsoListParagraph"
            style="margin-left:2.7pt;mso-list:l0 level1 lfo2"><span
              style="mso-fareast-language:EN-US">can be
              <b>pointed to</b> symmetrically from both Severity and
              DiagnosticReason<o:p></o:p></span></li>
          <li class="MsoListParagraph"
            style="margin-left:2.7pt;mso-list:l0 level1 lfo2"><span
              style="mso-fareast-language:EN-US">can be
              <b>pointed to</b> by many other bits of code<o:p></o:p></span></li>
        </ul>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">The
            way it is better is that today’s Haddock doesn’t understand
            Notes.  But we could fix that if we were minded to.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><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.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal" style="margin-left:36.0pt"><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><o:p></o:p></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">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.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">Let’s
            have one, fully-explicit version of The Plan that we
            constantly refer to.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">cc’ing
            ghc-devs because we must constantly question and refine how
            we describe and document GHC.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">Simon<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-size:8.0pt">PS: I am
            leaving Microsoft at the end of November 2021, at which
            point
            <a href="mailto:simonpj@microsoft.com"
              moz-do-not-send="true"><span style="color:#0563C1">simonpj@microsoft.com</span></a>
            will cease to work.  Use
            <a href="mailto:simon.peytonjones@gmail.com"
              moz-do-not-send="true"><span style="color:#0563C1">simon.peytonjones@gmail.com</span></a>
            instead.  (For now, it just forwards to
            <a class="moz-txt-link-abbreviated" href="mailto:simonpj@microsoft.com">simonpj@microsoft.com</a>.)<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <div style="border:none;border-left:solid blue 1.5pt;padding:0cm
          0cm 0cm 4.0pt">
          <div>
            <div style="border:none;border-top:solid #E1E1E1
              1.0pt;padding:3.0pt 0cm 0cm 0cm">
              <p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span
                  lang="EN-US"> Alfredo Di Napoli
                  <a class="moz-txt-link-rfc2396E" href="mailto:alfredo.dinapoli@gmail.com"><alfredo.dinapoli@gmail.com></a>
                  <br>
                  <b>Sent:</b> 26 August 2021 07:25<br>
                  <b>To:</b> Simon Peyton Jones
                  <a class="moz-txt-link-rfc2396E" href="mailto:simonpj@microsoft.com"><simonpj@microsoft.com></a><br>
                  <b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:rae@richarde.dev">rae@richarde.dev</a><br>
                  <b>Subject:</b> Re: [Haskell Community] [Links]
                  [Well-Typed Blog] The new GHC diagnostic
                  infrastructure<o:p></o:p></span></p>
            </div>
          </div>
          <p class="MsoNormal"><o:p> </o:p></p>
          <div>
            <div>
              <div>
                <div>
                  <p class="MsoNormal"
style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">Hello
                    Simon!<o:p></o:p></p>
                </div>
                <p class="MsoNormal"
style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm"><o:p> </o:p></p>
                <div>
                  <div>
                    <p class="MsoNormal"
style="mso-margin-top-alt:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm">On
                      Wed, 25 Aug 2021 at 13:36, Simon Peyton Jones <<a
                        href="mailto:simonpj@microsoft.com"
                        moz-do-not-send="true"
                        class="moz-txt-link-freetext">simonpj@microsoft.com</a>>
                      wrote:<o:p></o:p></p>
                  </div>
                  <blockquote style="border:none;border-left:solid
                    #CCCCCC 1.0pt;padding:0cm 0cm 0cm
                    6.0pt;margin-left:4.8pt;margin-right:0cm">
                    <div>
                      <div>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Alfredo<o:p></o:p></p>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks
                          for all the work you are doing on GHC’s error
                          message infrastructure.  Your blog post gives
                          a great overview.<o:p></o:p></p>
                      </div>
                    </div>
                  </blockquote>
                  <div>
                    <p class="MsoNormal"><o:p> </o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal">Thanks, and I am glad you
                      enjoyed it :) <o:p></o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"> <o:p></o:p></p>
                  </div>
                  <blockquote style="border:none;border-left:solid
                    #CCCCCC 1.0pt;padding:0cm 0cm 0cm
                    6.0pt;margin-left:4.8pt;margin-right:0cm">
                    <div>
                      <div>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.<o:p></o:p></p>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">So
                          the question is: where is the canonical
                          overview?  It could be<o:p></o:p></p>
                        <ul type="disc">
                          <li
                            class="gmail-m4686577435606355590msolistparagraph"
                            style="mso-list:l1 level1 lfo1">
                            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.<o:p></o:p></li>
                          <li
                            class="gmail-m4686577435606355590msolistparagraph"
                            style="mso-list:l1 level1 lfo1">
                            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).<o:p></o:p></li>
                          <li
                            class="gmail-m4686577435606355590msolistparagraph"
                            style="mso-list:l1 level1 lfo1">
                            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.<o:p></o:p></li>
                        </ul>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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?<o:p></o:p></p>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                      </div>
                    </div>
                  </blockquote>
                  <div>
                    <p class="MsoNormal"><o:p> </o:p></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><o:p></o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"><o:p> </o:p></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):<o:p></o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"><o:p> </o:p></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);<o:p></o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"><o:p> </o:p></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;<o:p></o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"><o:p> </o:p></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:10.0pt;font-family:"Arial",sans-serif;color:#1A1A1A">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"
                        moz-do-not-send="true">
https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Types/Error.hs#L279</a>
                      .<o:p></o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"><o:p> </o:p></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><o:p></o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"><o:p> </o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal">Hope it helps, and sorry for
                      the long ramble!<o:p></o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"><o:p> </o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal">Alfredo<o:p></o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"><o:p> </o:p></p>
                  </div>
                  <div>
                    <p class="MsoNormal"> <o:p></o:p></p>
                  </div>
                  <blockquote style="border:none;border-left:solid
                    #CCCCCC 1.0pt;padding:0cm 0cm 0cm
                    6.0pt;margin-left:4.8pt;margin-right:0cm">
                    <div>
                      <div>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thanks<o:p></o:p></p>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Simon<o:p></o:p></p>
                        <p class="MsoNormal"
                          style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                        <div style="border:none;border-left:solid blue
                          1.5pt;padding:0cm 0cm 0cm 4.0pt">
                          <div>
                            <div style="border:none;border-top:solid
                              #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
                              <p class="MsoNormal"
                                style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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><o:p></o:p></p>
                            </div>
                          </div>
                          <p class="MsoNormal"
                            style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
                          <div>
                            <div style="margin-bottom:18.75pt">
                              <table class="MsoNormalTable"
                                cellspacing="0" cellpadding="0"
                                border="0">
                                <tbody>
                                  <tr>
                                    <td style="width:41.25pt;padding:0cm
                                      0cm 0cm 0cm" width="55"
                                      valign="top">
                                      <p class="MsoNormal"
                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span
style="font-family:"Helvetica",sans-serif;border:solid
                                          windowtext 1.0pt;padding:0cm"><img
style="width:.4687in;height:.4687in"
                                            id="gmail-m_4686577435606355590Picture_x0020_1"
src="cid:part1.r0XoxfKF.jp0R2hio@glitchbra.in" alt="Image removed by
                                            sender." class="" width="45"
                                            height="45" border="0"></span><o:p></o:p></p>
                                    </td>
                                    <td style="padding:0cm 0cm 0cm 0cm">
                                      <p class="MsoNormal"
                                        style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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:10.0pt;font-family:"Tahoma",sans-serif;color:#006699;text-decoration:none">adinapoli</span></b></a>
                                          <br>
                                        </span><span
style="font-size:8.5pt;font-family:"Tahoma",sans-serif;color:#999999">August
                                          23</span><span
                                          style="font-family:"Helvetica",sans-serif">
                                        </span><o:p></o:p></p>
                                    </td>
                                  </tr>
                                </tbody>
                              </table>
                              <div>
                                <div style="border:solid #E9E9E9
                                  4.5pt;padding:9.0pt 19.0pt 9.0pt
                                  9.0pt">
                                  <div>
                                    <p class="MsoNormal"
                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span
                                        style="border:solid windowtext
                                        1.0pt;padding:0cm" lang="EN-US"><img
style="width:.3333in;height:.3333in"
                                          id="gmail-m_4686577435606355590Picture_x0020_2"
src="cid:part1.r0XoxfKF.jp0R2hio@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:#006699;text-decoration:none">well-typed.com</span></b></a>
                                      </span><o:p></o:p></p>
                                  </div>
                                  <div>
                                    <p class="MsoNormal"
                                      style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span
                                          lang="EN-US">Error! Filename
                                          not specified.</span></b><o:p></o:p></p>
                                    <h3 style="margin-bottom:15.0pt"><span
                                        style="font-size:13.0pt"
                                        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:#006699;text-decoration:none">The
                                            new GHC diagnostic
                                            infrastructure - Well-Typed:
                                            The Haskell Consultants</span></a></span><o:p></o:p></h3>
                                  </div>
                                </div>
                              </div>
                            </div>
                            <div>
                              <div class="MsoNormal"
                                style="text-align:center" align="center"><span
                                  style="color:#666666" lang="EN-US">
                                  <hr width="100%" size="1"
                                    align="center">
                                </span></div>
                              <p><span style="color:#666666"
                                  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:solid
                                        #2F70AC
                                        3.0pt;padding:0cm;background:#2F70AC;text-decoration:none">Visit
                                        Topic</span></b></a> or reply to
                                  this email to respond.</span><o:p></o:p></p>
                            </div>
                            <div>
                              <p><span style="color:#666666"
                                  lang="EN-US">You are receiving this
                                  because you enabled mailing list mode.</span><o:p></o:p></p>
                              <p><span style="color:#666666"
                                  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:#666666;text-decoration:none">click
                                        here</span></b></a>.</span><o:p></o:p></p>
                            </div>
                          </div>
                          <div>
                            <p class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;line-height:0%"><span
style="font-size:11.5pt;font-family:Courier" lang="EN-US">             
                                                                       
                                     </span><o:p></o:p></p>
                          </div>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
ghc-devs mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a>
<a class="moz-txt-link-freetext" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a>
</pre>
    </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>