
Hi, Am Freitag, dem 02.12.2022 um 16:03 +0000 schrieb Simon Peyton Jones:
Neither group is wrong... it's simply a stylistic choice. But if we solidly adopt one choice or the other, we are privileging one group over the other, which to me seems like risking unnecessary conflict, one that could absorb precious cycles we could more profitably spend elsewhere.
but that amounts to saying that our vision for GHC is to support multiple languages, and not just by saying “some still experimental features are opt-in”, but really “There are different Haskell-like source languages you can choose from”. That is a justifiable stance! But it is a stance that’s incompatible with “we want there to be one Haskell language” (surely with different programming styles, but still one default stable language). And I believe it would be good to gain more clarity here. For example, if we’d go that route (which I am not fully opposed to, either!), I could imagine embracing it even more, and paying more attention to which language extensions are * module-local (i.e. define locally a new language syntax, but don’t affect the interface between modules), and which * cross the module boundary. Most syntactic gadgets (UnicodeSyntax, Punning) are of the former, most type system change (ExistentialTypes…) are of the latter. The former we can be much more liberal if we embrace the idea of that every programmer can have their own preferred dialect to write their Haskell code in, as they still participate in the wider ecosystem of existing Haskell code. To the extent that I would humor a proposal of LispyHaskell that proposes a completely new syntax with lots of parentheses, as long as it still behaves the same on the module boundary! Maybe an extreme example, but why not? (Is it too dangerous to call the two stances towards dialects the French and the German approach? :-)) Cheers, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/