<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<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 class="moz-txt-link-abbreviated" href="mailto:libraries@haskell.org">libraries@haskell.org</a>, CLC, chessai alone, whoever
is first?<br>
<br>
- Oleg<br>
</p>
<div class="moz-cite-prefix">On 21.5.2021 23.21, Richard Eisenberg
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:010f01799096e89c-6b4dab11-2b48-49a3-a2f9-e1b4e558800d-000000@us-east-2.amazonses.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
I agree with Chris here.
<div class=""><br class="">
</div>
<div class="">Let me expand upon my counter-proposal:</div>
<div class=""><br class="">
</div>
<div class="">* A datatype declaration gets a standalone kind
signature whenever at least one of its type arguments has a kind
other than Type.</div>
<div class="">* A class declaration gets a standalone kind
signature whenever at least one of its type arguments has a kind
other than Type.(*)</div>
<div class="">* A closed type family always gets a standalone kind
signature.</div>
<div class="">* 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 class=""><br class="">
</div>
<div class="">(*) 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 class=""><br class="">
</div>
<div class="">In cases other than those covered above, the
standalone kind signature is optional, at the discretion of the
programmer.</div>
<div class=""><br class="">
</div>
<div class="">This suggests that Dict gets a signature, Eq does
not, Fix does, and Either does not.</div>
<div class=""><br class="">
</div>
<div class="">Richard</div>
<div class=""><br class="">
</div>
<div class="">
<div>
<blockquote type="cite" class="">
<div class="">On May 21, 2021, at 12:37 PM, Chris Smith <<a
href="mailto:cdsmith@gmail.com" class=""
moz-do-not-send="true">cdsmith@gmail.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" class="">
<div dir="ltr" class="">On Fri, May 21, 2021 at 2:11 AM
Baldur Blöndal <<a
href="mailto:baldurpet@gmail.com" target="_blank"
class="" moz-do-not-send="true">baldurpet@gmail.com</a>>
wrote:<br class="">
</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 class="">
<br class="">
So Dict, Eq both get a sig but Fix and Either do
not?<br class="">
<br class="">
type Dict :: Constraint -> Type<br class="">
type Eq :: Type -> Constraint<br class="">
type Fix :: (Type -> Type) -> Type</blockquote>
<div class=""><br class="">
</div>
<div class=""> 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 class=""><br class="">
</div>
<div class="">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 class="">
</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>
</body>
</html>