<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 7/26/23 6:46 PM, Benjamin Redelings
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:63519e88-b727-7e85-9cdd-6cd91ff58982@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>Thanks!</p>
      <p>It looks like ExtendedDefaultRules already allows default
        variables that co-occur with multiparameter constraints and
        non-standard classes.  So maybe that solves my issue with (Num
        a, Convertible a Double).<br>
      </p>
    </blockquote>
    <p>It looks like (Num a, Convertible Double a) would work
      differently:</p>
    <p>- with ExtendedDefaultRules, GHC would pick a ~ Integer (ignoring
      the Convertible constraint) and then complain that Convertible
      Double Integer has no instance.</p>
    <p>- with NamedDefaults, GHC would reject a ~ Integer because
      Convertible Double Integer fails and then choose a ~ Double, which
      succeeds.</p>
    <p>-BenRI<br>
    </p>
    <blockquote type="cite"
      cite="mid:63519e88-b727-7e85-9cdd-6cd91ff58982@gmail.com">
      <p> </p>
      <p>Does the defaulting for RuntimeRep interact with class
        defaulting?<br>
      </p>
      <p>-BenRI<br>
      </p>
      <div class="moz-cite-prefix">On 7/26/23 12:11 PM, Simon Peyton
        Jones wrote:<br>
      </div>
      <blockquote type="cite"
cite="mid:CAJKmMz_aDtNs2rGKgqLZ5yGPaMvkHQME4MYjvO_pO5xHmLhRjw@mail.gmail.com">
        <meta http-equiv="content-type"
          content="text/html; charset=UTF-8">
        <div dir="ltr">
          <div class="gmail_default"
            style="font-family:tahoma,sans-serif">No: I don't know of
            anyone planning to implement this proposal -- indeed I had
            forgotten about it -- so it's waiting for someone to take it
            on.</div>
          <div class="gmail_default"
            style="font-family:tahoma,sans-serif"><br>
          </div>
          <div class="gmail_default"
            style="font-family:tahoma,sans-serif">There are some
            slightly tricky loose ends around defaulting that it'd be
            good to nail down first: <a
              href="https://gitlab.haskell.org/ghc/ghc/-/issues/20686"
              moz-do-not-send="true" class="moz-txt-link-freetext">https://gitlab.haskell.org/ghc/ghc/-/issues/20686</a></div>
          <div class="gmail_default"
            style="font-family:tahoma,sans-serif"><br>
          </div>
          <div class="gmail_default"
            style="font-family:tahoma,sans-serif">Simon<br>
          </div>
        </div>
        <br>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Wed, 26 Jul 2023 at
            11:00, Benjamin Redelings <<a
              href="mailto:benjamin.redelings@gmail.com"
              moz-do-not-send="true" class="moz-txt-link-freetext">benjamin.redelings@gmail.com</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
            <br>
            If I understand correctly, the traditional defaulting rules
            prevent <br>
            defaulting variables with constraints like (Num a,
            Convertible a <br>
            Double), but the NamedDefaults proposal would allow
            defaulting a ~ <br>
            Double in this case due to the relaxed defaulting rules in
            section 2.5 <br>
            of the proposal:<br>
            <br>
            <a
href="https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0409-exportable-named-default.rst#id2"
              rel="noreferrer" target="_blank" moz-do-not-send="true"
              class="moz-txt-link-freetext">https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0409-exportable-named-default.rst#id2</a><br>
            <br>
            1. Is there any plan to start implementing NamedDefaults?  I
            saw the <br>
            comment from Simon P-J that it would not be fun to implement
            because it <br>
            might require orphan default declarations... so perhaps
            there's no plan <br>
            to implement this?<br>
            <br>
            2. Would it be worth adding a separate LANGUAGE option that
            just <br>
            implements the relaxed defaulting rules in section 2.5?
            Specifically (a) <br>
            allowing variables with multiparameter constraints and (b)
            allowing <br>
            variables with constraints that are not in the Prelude.<br>
            <br>
            3. Am I correct in assuming that the relaxed defaulting
            rules require <br>
            NamedDefaults to be enabled in the importing module, and not
            just in the <br>
            imported model?<br>
            <br>
            -BenRI<br>
            _______________________________________________<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>
    </blockquote>
  </body>
</html>