[ghc-steering-committee] #475: New tuple and list syntax, rec: accept

Joachim Breitner mail at joachim-breitner.de
Tue Mar 1 15:10:35 UTC 2022


Hi,

Am Montag, dem 28.02.2022 um 22:31 +0300 schrieb Vladislav Zavialov
(int-index):
> There’s also a new alternative described in the proposal. Here are our options:
>   1. TupleN A B C
>   2. Tuple [A, B, C]
>   3. Tuple (A, B, C)   — NEW

I am not convinced it’s a good idea to introduce many ways of naming
the same thing, and given that the above three are already in addition
to the primitive (Tuple2 Bool Int), (which I’ll call (0) below), we
need a good justification to have more than one.

Between (2) and (3), I’d prefer (3): The strange loop of tuples
referring to tuples isn’t too unhaskellish, and if it works better for
unboxed tuples, then yay!

Between (3) and (1) I am unsure. Presumably, if we didn’t have (3) we’d
use the less idiosyncratic name `Tuple` for (1)? 

Are there other, not purely cosmetic, differences between (1) and (3)?
Maybe related to partial application?



It’s a bit sad we can't just have (1) without even needing (0), so that
there really is only _one_ name that’s reasonably ergonomic. How far
out would that be? Worth making Haskell good enough to support a nice
design here? :-)

Cheers,
Joachim
-- 
Joachim Breitner
  mail at joachim-breitner.de
  http://www.joachim-breitner.de/



More information about the ghc-steering-committee mailing list