Quo vadis?

Philippa Cowderoy flippa at flippac.org
Mon Oct 8 03:32:16 UTC 2018


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


More information about the Haskell-prime mailing list