<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I should have read the whole email before replying... Sorry for
      the noise.<br>
    </p>
    <div class="moz-cite-prefix">On 9.7.2020 15.09, Oleg Grenrus wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:0c02c459-c683-2d4f-2237-5b13f210393b@iki.fi">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>There is an old GHC issue <a
          href="https://gitlab.haskell.org/ghc/ghc/-/issues/10776"
          moz-do-not-send="true">https://gitlab.haskell.org/ghc/ghc/-/issues/10776</a>
        which got recently a PR <a
          href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3583"
          moz-do-not-send="true">https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3583</a></p>
      <p>- Oleg<br>
      </p>
      <div class="moz-cite-prefix">On 9.7.2020 12.59, Rinat Stryungis
        wrote:<br>
      </div>
      <blockquote type="cite"
cite="mid:CAM89rCXAWC8A2cJrkJ+pMMdRyjd5GCy0h4oFOBTgug8xsF-u4A@mail.gmail.com">
        <meta http-equiv="content-type" content="text/html;
          charset=UTF-8">
        <div dir="ltr">Hello, libraries!<br>
          <br>
          I want to present a proposal for changes in the `Base`
          library. <br>
          The changes in my proposal partially solve the following
          issue: <br>
              <a
            href="https://gitlab.haskell.org/ghc/ghc/-/issues/10776"
            moz-do-not-send="true">https://gitlab.haskell.org/ghc/ghc/-/issues/10776</a>
          <br>
          and remove the separate built-in kind `Nat` in favor of
          promoted type `Natural`. <br>
          <br>
          It means that previously one can't directly promote a data
          type with Natural fields: <br>
          <br>
              data MyPointN = PointN Natural Natural -- could not be
          promoted <br>
              data MyPointP = PointP Nat Nat         -- could be
          promoted, but uninhabited in terms<br>
          <br>
              type M = PointP 1 10   <br>
          <br>
          but now one could promote the `Natural` data type: <br>
          <br>
              data MyPoint = Point Natural Natural<br>
              type MyTLPoint1 = Point 1 10 <br>
          <br>
          The proposed changes both simplify the internals of the GHC by
          removing <br>
          separate kind and related things and make using of the
          type-level <br>
          naturals more convenient for users. <br>
          <br>
          Also new type synonym <br>
          <br>
              type Nat = Natural <br>
          <br>
          appeared in the Data.Type.TypeNats in the name of backward
          compatibility. <br>
          <br>
          I've opened a new MR with the patch. In the patch with the
          already implemented promotion of Naturals, one could find new
          and updated tests and docs. <br>
          <br>
          Also, I want to say about the breakages:  <br>
          <br>
          1. One must enable `TypeSynonymInstances` in order to define
          instances for `Nat`.<br>
          2. Different instances for `Nat` and `Natural` won't type
          check anymore.<br>
          3. Type checker plugins that work with the natural numbers now
          <br>
             should use `naturalTy` kind instead of removed
          `typeNatKind`<br>
          <br>
          Anyone interested is welcome to look at the MR and discuss the
          proposal and its implementation. <br>
          <br>
          <a
            href="https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3583"
            moz-do-not-send="true">https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3583</a><br>
          <br>
          The latter is very short and easy, thanks to the recently
          merged patch with a new `ghc-bignum` library. It greatly
          simplified my work. <br>
          <br>
          Thanks and best regards. <br>
          Rinat Stryungis. </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
Libraries mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Libraries@haskell.org" moz-do-not-send="true">Libraries@haskell.org</a>
<a class="moz-txt-link-freetext" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" moz-do-not-send="true">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a>
</pre>
      </blockquote>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
Libraries mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Libraries@haskell.org">Libraries@haskell.org</a>
<a class="moz-txt-link-freetext" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a>
</pre>
    </blockquote>
  </body>
</html>