<div dir="auto">Yeah that’s roughly exactly it</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, May 24, 2021 at 4:37 PM chessai <<a href="mailto:chessai1996@gmail.com">chessai1996@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>The CLC owns base, with final say coming down to listed maintainers. Though in practise, it ends up being a collective opinion of the CLC + GHC HQ that drives decisions, rather than one person.</div></div><div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, May 24, 2021, 15:28 Oleg Grenrus <<a href="mailto:oleg.grenrus@iki.fi" target="_blank">oleg.grenrus@iki.fi</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div>
    <p>To clarify, are you suggesting guidelines for GHC **and**
      base-library?<br>
      <br>
      I'm puzzled about ownership of base. Who have a final word about
      it? ghc-devs, <a href="mailto:libraries@haskell.org" rel="noreferrer" target="_blank">libraries@haskell.org</a>, CLC, chessai alone, whoever
      is first?<br>
      <br>
      - Oleg<br>
    </p>
    <div>On 21.5.2021 23.21, Richard Eisenberg
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      I agree with Chris here.
      <div><br>
      </div>
      <div>Let me expand upon my counter-proposal:</div>
      <div><br>
      </div>
      <div>* A datatype declaration gets a standalone kind
        signature whenever at least one of its type arguments has a kind
        other than Type.</div>
      <div>* A class declaration gets a standalone kind
        signature whenever at least one of its type arguments has a kind
        other than Type.(*)</div>
      <div>* A closed type family always gets a standalone kind
        signature.</div>
      <div>* A type synonym gets a standalone kind signature
        whenever either at least one of its arguments has a kind other
        than Type or its result has a kind other than Type.</div>
      <div><br>
      </div>
      <div>(*) The class rule has an exception: if a class has
        a superclass constraint using Monad, Functor, Applicative,
        Foldable, or Traversable (or some other class whose name
        textually includes one of those names, such as MonadIO), we
        understand that the constrained variable must have kind Type
        -> Type. If that type variable is the only one without kind
        Type -> Type, then the standalone kind signature is optional.</div>
      <div><br>
      </div>
      <div>In cases other than those covered above, the
        standalone kind signature is optional, at the discretion of the
        programmer.</div>
      <div><br>
      </div>
      <div>This suggests that Dict gets a signature, Eq does
        not, Fix does, and Either does not.</div>
      <div><br>
      </div>
      <div>Richard</div>
      <div><br>
      </div>
      <div>
        <div>
          <blockquote type="cite">
            <div>On May 21, 2021, at 12:37 PM, Chris Smith <<a href="mailto:cdsmith@gmail.com" rel="noreferrer" target="_blank">cdsmith@gmail.com</a>> wrote:</div>
            <br>
            <div>
              <div dir="ltr">
                <div dir="ltr">On Fri, May 21, 2021 at 2:11 AM
                  Baldur Blöndal <<a href="mailto:baldurpet@gmail.com" rel="noreferrer" target="_blank">baldurpet@gmail.com</a>>
                  wrote:<br>
                </div>
                <div class="gmail_quote">
                  <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> encouraging
                    the use of a standalone signature for type
                    declarations where at least one parameter of the
                    datatype does not have kind Type.<br>
                    <br>
                    So Dict, Eq both get a sig but Fix and Either do
                    not?<br>
                    <br>
                      type Dict :: Constraint -> Type<br>
                      type Eq   :: Type -> Constraint<br>
                      type Fix  :: (Type -> Type) -> Type</blockquote>
                  <div><br>
                  </div>
                  <div> That's not how I understand Richard's
                    criteria.  Dict and Fix have non-Type parameters
                    (Dict has a Constraint parameter, and Fix has a
                    (Type -> Type) parameter.  On the other hand, Eq
                    and Either have only Types as parameters.  This
                    seems to match my intuition about when a kind
                    signature might be helpful, as well as yours as far
                    as I can tell from what you wrote.</div>
                  <div><br>
                  </div>
                  <div>That's not to say I am advocating any
                    kind of rule.  As I'm not really involved in GHC
                    development, I refrain from having any opinion.  I
                    just think you may have misread Richard's
                    suggestion.</div>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset></fieldset>
      <pre>_______________________________________________
ghc-devs mailing list
<a href="mailto:ghc-devs@haskell.org" rel="noreferrer" target="_blank">ghc-devs@haskell.org</a>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a>
</pre>
    </blockquote>
  </div>

_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" rel="noreferrer" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div></div></div>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div></div>