On 08/10/2018 02:51, Mario Blažević wrote:

Neither an abstract good nor a good abstraction are something Haskell has ever shied away from. I don't know if you're actually asking for a list of "concrete goods"? To start with, every GHC extension that's added to a standard means:

- one less item to type in the ubiquitous {-# LANGUAGE ScaryExtension #-} pragma,
- one less item to understand for beginners,
- one less item whose necessity must be justified to the team, and
- one less item of whose future stability the management needs to be convinced.


I suspect we need to follow the lead of other languages here and accept that the LANGUAGE pragma is actually a necessity and a positive good for engineering in the presence of changing language versions.

That would mean we should support more standardised pragmas in the vein of the existing ones in the report, and perhaps that GHC should give more information about the stability of extensions. Perhaps when an extension was first introduced and the GHC versions in which the last two changes more significant than "bug fix" happened? There might even be a need for versioning of extensions.

I'd be remiss if I didn't suggest a candidate with a specific problem, a specific goal and a possible solution to its problem. So, a modest proposal:

- Standardise OverloadedStrings as an available-but-disabled feature
- Allow default statements for the IsString class without OverloadedStrings, using that type for all string literals - At some future stage, we can use this to migrate away from [Char] as the default string literal type - The Haskell2010 pragma and its successors can be used to ensure code written to standard doesn't suffer bit rot when migration happens
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime

Reply via email to