<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">If there is a consensus to accept, we can say "Accept provided you make the spec precise, and that process does not throw up any unexpected surprises".  I agree that requiring a fully-precise spec for a subsequently-rejected proposal is dispiriting.</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">But I worry that if we kick the can down the road</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><ul><li>there is no mechanism to ensure subsequent precision</li><li>code reviewers have no spec wrt which to review the code</li></ul><div>so maybe it never gets done at all.</div><div><br></div><div>Simon<br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 3 Jan 2024 at 12:52, Richard Eisenberg <<a href="mailto:rae@richarde.dev">rae@richarde.dev</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"><div style="overflow-wrap: break-word;"><br><div><br><blockquote type="cite"><div>On Jan 3, 2024, at 7:47 AM, Simon Peyton Jones <<a href="mailto:simon.peytonjones@gmail.com" target="_blank">simon.peytonjones@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">But why wait? </div></div></div></blockquote><div><br></div><div>To reduce the burden of the proposal process. From the point of view of the proposer, putting yet more time into an as-yet-unaccepted proposal is a hoop to jump through, with uncertain outcome.</div><div><br></div><div>As we can observe, writing precise specifications is generally not easy. (If it were easy, then we should expect most proposals to come with one. But almost all proposals are insufficiently precise upon inspection.) I'm just trying to nudge us toward making the process easier (for us, too!).</div><div><br></div><div>Richard</div><div><br></div><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif"> There is no implementation-related uncertainty here.  It's just a question of writing a precise spec.  It's not even difficult to do!</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">Sometimes making the spec precise throws up unexpected wrinkles.  <br></div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">I'm not against postponing things where the implementation may influence details of the spec.  But that's not the case here, I think.</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, 3 Jan 2024 at 12:43, Richard Eisenberg <<a href="mailto:rae@richarde.dev" target="_blank">rae@richarde.dev</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"><div>I agree that some aspects of this proposal are not as precise as I'd like. But actually I think we should accept before these last few details are worked out. Unless I'm mistaken, there's not a worry that the specific choices will change our minds, and the details will have to be resolved in the course of implementation. Ideally, the proposer will come back and update the proposal. However, the proposal is not the long-lasting record of the specification; the user manual is. (By contrast, the proposal is the long-lasting record of the motivation / discussion / alternatives.) So I would insist in the code-review process that the manual is fully precise, and perhaps to insist that the proposal has a note saying it will be made precise in the course of implementation -- but I don't think we need this to happen before acceptance. Sometimes the details are easier to work out during implementation and can be informed by the tiny bit of experience gained writing tests, etc.<div><br></div><div>Richard</div><div><br></div><div>PS: The viewpoint here -- to work out final details late -- is informed by the common practice at Jane Street. We sketch out a broad idea with a bunch of examples, but we write down the final specification only after implementing. This is so much easier, because it makes the specification process iterative with implementation.</div><div><div><br><blockquote type="cite"><div>On Jan 3, 2024, at 7:17 AM, Simon Peyton Jones <<a href="mailto:simon.peytonjones@gmail.com" target="_blank">simon.peytonjones@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">I'm content to accept, but only when the specification is made precise.</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 Tue, 2 Jan 2024 at 12:24, Richard Eisenberg <<a href="mailto:rae@richarde.dev" target="_blank">rae@richarde.dev</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">After some conversation on the ticket, I'd like to vote for acceptance here.<br>
<br>
Richard<br>
<br>
> On Jan 1, 2024, at 9:46 AM, Richard Eisenberg <<a href="mailto:rae@richarde.dev" target="_blank">rae@richarde.dev</a>> wrote:<br>
> <br>
> Yes that's true of course, but if we had a design that could cover raw strings as well, then we have one fewer quoting construct. I guess the real question is: do we need the ability to toggle between multiline and raw separately? That is, right now we have cooked single-line strings. This proposal is for cooked multiline strings, leaving raw strings for a separate proposal. But maybe we only need cooked single-line strings and raw multiline ones? That would be simpler.<br>
> <br>
> I think wisdom from other languages would be helpful here. I will post on the ticket.<br>
> <br>
> Richard<br>
> <br>
>> On Dec 31, 2023, at 12:04 PM, Eric Seidel <<a href="mailto:eric@seidel.io" target="_blank">eric@seidel.io</a>> wrote:<br>
>> <br>
>> <br>
>>> On Dec 29, 2023, at 07:19, Richard Eisenberg <<a href="mailto:rae@richarde.dev" target="_blank">rae@richarde.dev</a>> wrote:<br>
>>> <br>
>>> On the other hand, I'm a little worried that this doesn't have support for raw strings. That is, even with this, there will still be some users who reach for quasiquotes for multi-line strings, if those strings contain backslashes.<br>
>> <br>
>> I had a similar thought at first, but I think raw strings can be added independently of this proposal. So long as we are not closing the door to a future addition I think it is fine to take incremental steps. <br>
> <br>
<br>
_______________________________________________<br>
ghc-steering-committee mailing list<br>
<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a><br>
<a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br>
</blockquote></div>
</div></blockquote></div><br></div></div></blockquote></div>
</div></blockquote></div><br></div></blockquote></div>