[ghc-steering-committee] TypeApplications for Overloaded Literals (#129), Recommendation: reject
Joachim Breitner
mail at joachim-breitner.de
Mon May 14 22:32:53 UTC 2018
Hi,
guess this one goes down as rejected. Will close it with a rationale.
Cheers,
Joachim
Am Dienstag, den 08.05.2018, 08:20 -0400 schrieb Joachim Breitner:
> Hi,
>
> it seems this proposal does not get much support. I kinda like the
> high-level goal, but not enough to defend it vehemently. I am
> changing my recommendation to reject, to facilitate consensus.
>
> I should give those time to speak up who were in silent agreement
> with my initial recommendation, and if nothing happens, will reject
> this proposal in a week's time.
>
>
>
> Am 8. Mai 2018 06:40:30 GMT-04:00 schrieb Simon Peyton Jones <simonpj at microsoft.com>:
> > I’m on the fence:
> >
> > * Benefit: slight
> > * Cost: slight
> >
> > But the spec is distressingly ad-hoc. Magical behaviour if
> >
> > * RebindableSyntax is no
> > * The ‘fromInteger’ in scope is not ‘Prelude.fromInteger’
> >
> > So I lean to rejection. Unless some stronger motivations emerge.
> >
> > Simon
> >
> > From: ghc-steering-committee
> > <ghc-steering-committee-bounces at haskell.org> On Behalf Of Richard
> > Eisenberg
> > Sent: 06 May 2018 20:27
> > To: Iavor Diatchki <iavor.diatchki at gmail.com>
> > Cc: ghc-steering-committee at haskell.org; Joachim Breitner
> > <mail at joachim-breitner.de>
> > Subject: Re: [ghc-steering-committee] TypeApplications for Overloaded
> > Literals (#129), Recommendation: accept
> >
> > I'm also unconvinced about this proposal. It's hard to specify,
> > requiring that Prelude.fromInteger be magical. Note that if someone
> > defined a separate Num class (under -XNoImplicitPrelude
> > -XRebindableSyntax) that's fully equivalent to Prelude.Num, it wouldn't
> > work. Also, Joachim's point about `:t 5` is a poor motivation: `:t`
> > does not give you helpful information w.r.t. type applications. You
> > need `:t +v`. With -fprint-explicit-foralls,
> >
> > λ> :t +v 5
> > 5 :: forall {p}. Num p => p
> >
> > The appearance of the braces in the output means that 5 is not
> > available for visible type application (the variable p is *inferred*).
> > So if there's any unexpected behavior in the current implementation,
> > that's due to ill-informed expectations, not misbehavior.
> >
> > In the end, I would prefer to reject this proposal in favor of
> > Joachim's casual proposal here:
> > https://mail.haskell.org/pipermail/ghc-steering-committee/2018-May/000541.html
> > (and expanded upon by my subsequent post).
> >
> > Richard
> >
> >
> > On May 6, 2018, at 12:27 PM, Iavor Diatchki
> > <iavor.diatchki at gmail.com<mailto:iavor.diatchki at gmail.com>> wrote:
> >
> > I am not convinced, if that's the sole motivation. By that reasoning
> > you might expect that `(-5) @Int` or `(5+1) @Int` would also work, but
> > they wouldn't.
> >
> >
> >
> > On Sun, May 6, 2018 at 8:47 AM Joachim Breitner
> > <mail at joachim-breitner.de<mailto:mail at joachim-breitner.de>> wrote:
> > Hi,
> >
> > Am Sonntag, den 06.05.2018, 15:42 +0000 schrieb Iavor Diatchki:
> > > Is there a reason why we should write `5 @Int` as opposed to `5 ::
> >
> > Int`?
> >
> > Because we can. Or rather, we should can, because
> >
> > Prelude> :t 5
> > 5 :: Num t => t
> > Prelude> :t 5 @Double
> > <interactive>:1:1: error:
> > • Cannot apply expression of type ‘t0’
> > to a visible type argument ‘Double’
> > • In the expression: 5 @Double
> >
> > is confusing and inconsistent with the user’s expectation after
> > learning about when they can use ExplicitTypeApplications (unless one
> > knows about the syntactic sugar involved.)
> >
> > > Also, there appears to be a typo in the spec, the part which
> >
> > specifies translations for integers (1 turned into 0?)
> >
> > thanks, fixed.
> >
> >
> > (BTW, all of you are owners of the repository and should have the
> > necessary permissions to edit pull requests directly.)
> >
> > Cheers,
> > Joachim
> >
> > --
> > Joachim Breitner
> > mail at joachim-breitner.de<mailto:mail at joachim-breitner.de>
> > http://www.joachim-breitner.de/
> > _______________________________________________
> > ghc-steering-committee mailing list
> > ghc-steering-committee at haskell.org<mailto: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<mailto: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
--
Joachim Breitner
mail at joachim-breitner.de
http://www.joachim-breitner.de/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20180514/3b96d717/attachment.sig>
More information about the ghc-steering-committee
mailing list