
On 6 May 2018 at 17:27, Iavor Diatchki
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.
I was about to make the same argument, but then I realised that there's a counter argument - the user's intuition about TypeApplications is likely to start with something like "look at the type of the function in the left corner of this application". In the case of (-5), which is actually `negate 5`, the identifier is `negate`, and we've already lost the ability to use a type application when we applied it to 5. This is no different from something like `read "3" @Int` which also doesn't work. The problem with bare literals is that we can't see the function in the corner, and the user will tend to think of the literal itself as the function, so I think the confusion that Joachim mentions is real. That said, I have no strong opinions here and I haven't read the forall {k} proposal yet. Cheers Simon
On Sun, May 6, 2018 at 8:47 AM Joachim Breitner
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@joachim-breitner.de http://www.joachim-breitner.de/ _______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee