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