Linear Types: ready for review

Spiwack, Arnaud arnaud.spiwack at tweag.io
Tue May 7 07:08:25 UTC 2019


Indeed,

I'd like to insist, to dispell any ambiguity, that none of the syntax in
the above-mentioned patch is definitive. We had to make up some syntax
because we needed it for testing, but the decision on what the actual
syntax will be has not been made yet. It's too early to worry :)

I'll, of course, update the proposal with the committee's decision when it
is made.

Best,
Arnaud

On Sun, May 5, 2019 at 4:27 PM Eric Seidel <eric at seidel.io> wrote:

> Hi Wolfgang,
>
> Just FYI, the GHC Steering Committee is currently reviewing a few more
> design decisions for the Linear Types proposal, one of which is the name of
> the unrestricted multiplicity. The current recommendation is to use Many
> rather than Omega (
> https://mail.haskell.org/pipermail/ghc-steering-committee/2019-May/001082.html
> ).
>
> Thanks!
> Eric
>
> On Sun, May 5, 2019, at 07:02, Wolfgang Jeltsch wrote:
> > Am Freitag, den 03.05.2019, 11:52 +0200 schrieb Spiwack, Arnaud:
> > >   * The file `Multiplicity`, which defines `type Mult = Type`, the
> > >     `Scaled` type and functions unrestricted, linear, pattern
> > >      synonyms `One` and `Omega`, quick submultiplicity test submult
> >
> > Could `Omega` **please** be changed to `Many`? I argued long time
> > ago [1] already why `Omega` seems to be a bad choice and `Many` to be a
> > much better alternative. Unfortunately, my arguments, while having been
> > positively received, didn’t really have a considerable impact on the
> > proposal and implementation; still today the proposal reflects only part
> > of them, as it did 1½ months ago [2].
> >
> > Notation is important, since good notation aids and bad notation
> > confuses. Notation is something that is very likely to stay once it has
> > been in use. Given that changing this one identifier shouldn’t be a big
> > deal, I’m asking you keenly to make this change.
> >
> > Following are my arguments again:
> >
> >   1. It’s already questionable that the paper uses the symbol ω. The
> >      choice of this symbol stems from its use for the smallest
> >      transfinite ordinal number, the number that denotes the length of
> >      an infinite list, if you so wish. This doesn’t match the use of ω
> >      in this proposal, where it stands for the possibility to use a
> >      value *any number* of times and thus rather corresponds to
> >      something like ℕ ∪ {ω}.
> >
> >   2. Even if ω is considered okay for being used in the theory, we
> >      shouldn’t use the identifier `Omega` in Haskell. `Omega` doesn’t
> >      name the multiplicity; instead it names the symbol that is used to
> >      denote the multiplicity.
> >
> >   3. To people not into something like ordinal numbers or ω-words,
> >      `Omega` doesn’t mean anything. Therefore its use would rather
> >      confuse than enlighten those people.
> >
> > I propose to pick multiplicity identifiers that capture the actual
> > meanings of the multiplicities and are consistent with existing
> > identifiers at the same time. `Control.Applicative` already uses the
> > identifiers `some`, `many`, and `optional`. Thus we should use `Many`
> > for what is now called `Omega` and `Optional` for the affinity
> > multiplicity in case it’s added at some time. I think `One` is a good
> > name and thus should be kept. The 0-multiplicity would probably be best
> > named `None`.
> >
> > All the best,
> > Wolfgang
> >
> > _______________________________________________
> > ghc-devs mailing list
> > ghc-devs at haskell.org
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
> >
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20190507/a8d368ab/attachment.html>


More information about the ghc-devs mailing list