[ghc-steering-committee] Proposal #356: new syntax for linear arrows

Iavor Diatchki iavor.diatchki at gmail.com
Fri Sep 18 20:08:44 UTC 2020


I don't have an opinion on which to use, just FYI in Haskell `%` is used to
print and construct Rational numbers.

On Fri, Sep 18, 2020 at 11:40 AM Richard Eisenberg <rae at richarde.dev> wrote:

> Argh. Of the people who responded, 2 voted for % and 2 voted for ^. No one
> has voted to reject the proposal.
>
> I thus declare the proposal accepted. But with what syntax? I have no
> conflict with a particular choice of glyph, so I will cast the tie-breaking
> vote for %. Rationale: ^1 is easy to believe as an exponentiation operator,
> whereas % has no tradition (within Haskell) as being used as a numerical
> infix operator.
>
> The acceptance of the proposal gets the gears unblocked. If anyone feels
> this decision premature (or otherwise wrong), please do bleat, as we still
> have time to change the choice of glyph.
>
> Happy Friday,
> Richard
>
> On Sep 15, 2020, at 2:57 AM, Spiwack, Arnaud <arnaud.spiwack at tweag.io>
> wrote:
>
> After looking at the renderings in
> https://github.com/ghc-proposals/ghc-proposals/pull/356#issuecomment-690221468
> , I do prefer `^` over `%`. Not very strongly either.
>
> On Mon, Sep 14, 2020 at 6:23 PM Joachim Breitner <mail at joachim-breitner.de>
> wrote:
>
>> How annoying, how can I now say “I’m trusting the shepherd’s
>> judgement” … ;-)
>>
>> I guess in that case I’ll say I’m trusting Simon PJ, and will go with
>> his vote, as I have no strong opinion of my own.
>>
>> Cheers,
>> Joachim
>>
>>
>> Am Sonntag, den 13.09.2020, 22:12 +0000 schrieb Richard Eisenberg:
>> > Hi committee,
>> >
>> > Mathieu Boespflug has proposed a new syntax for linear arrows:
>> https://github.com/ghc-proposals/ghc-proposals/pull/356
>> >
>> > Currently (from the original linear types proposal), we have #-> to
>> denote a linear function, and # m -> to denote an arbitrary function whose
>> argument has multiplicity m. This proposal suggests three changes:
>> >
>> > 1. Drop #-> entirely.
>> > 2. Use ^ instead of # in the second form, but require that it be a
>> *prefix* usage of ^ (that is, the character after the ^ must not be
>> whitespace).
>> > 3. Introduce a new lexeme ^1 that is used to denote linear functions.
>> > Alternative: use % in place of ^; % is observed to be more visually
>> apparent in some fonts than ^.
>> >
>> > In time, the hope is that rule (3) will no longer be needed, if we gain
>> overloaded numbers at the type level (when 1 :: Multiplicity will
>> type-check without a special rule).
>> >
>> > Motivations for this change come from the experience within Tweag of
>> using linear types. The change away from # also is to avoid a conflict with
>> overloaded labels, once those are allowed in types.
>> >
>> > The hope is that we can make a decision about this in time for release
>> with GHC 9.0. This proposal is already implemented:
>> https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4020
>> >
>> > In conflict with our usual protocol, I will not make a recommendation
>> on this proposal, as I am conflicted with the proposer. However, I do hope
>> that we can come to a conclusion on this quickly, to avoid making a
>> backward-incompatible change after a release.
>> >
>> > We have four options:
>> > A. Keep the syntax as it is.
>> > B. Choose to go with ^
>> > C. Choose to go with %
>> > D. Choose to go with some other symbol. I don't think there is any
>> particular preference for any one symbol over another.
>> >
>> > Richard
>> > _______________________________________________
>> > ghc-steering-committee mailing list
>> > ghc-steering-committee at haskell.org
>> >
>> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>> --
>> Joachim Breitner
>>   mail at joachim-breitner.de
>>   http://www.joachim-breitner.de/
>>
>>
>> _______________________________________________
>> ghc-steering-committee mailing list
>> ghc-steering-committee at haskell.org
>> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>>
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>
>
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20200918/f241b373/attachment-0001.html>


More information about the ghc-steering-committee mailing list