Haskell Platform proposal: Add case-insensitive and Haskell 98/2010 compliance
lemming at henning-thielemann.de
Sat Jan 12 13:42:56 CET 2013
On Sat, 12 Jan 2013, Roman Cheplyaka wrote:
> * Henning Thielemann <lemming at henning-thielemann.de> [2013-01-12 12:40:22+0100]
>> On Sat, 12 Jan 2013, Roman Cheplyaka wrote:
>> Ok, I like to request this for the whole platform. :-)
> This is easier to say than to do :)
> E.g. here's the result of a quick grep of the bytestring source code.
On compilers other than GHC, ByteString could be defined as
newtype ByteString = ByteString (StorableVector Word8)
and StorableVector can be compiled on JHC.
> I agree that this situation is sad, but package authors are the last
> ones to blame. Instead of needlessly constraining the code we write, it
> would be much better to update the Haskell standard to reflect the
> state of modern Haskell.
It's a balance between work for library writers and work for Haskell tool
writers. The more time library writers safe by using an extension, the
more time Haskell tool developers have to invest in supporting those
> But there doesn't seem to be much interest to work on the new version of
> Haskell (see the recent thread on the haskell-prime mailing list).
> Thus, today H98 and H2010 serve not as something that real code should
> conform to, but rather as baselines to which extensions are applied.
If you can easily avoid using an extension, like in the case of the
TypeSynonymInstances and FlexibleInstances in case-insensitive then this
seems better to me, than adding FlexibleInstances to all Haskell compilers
and Haskell tools (haddock, hlint, etc.), going through a Haskell Prime
proposal procedure, etc.
I also speak in a self-interest: We are developing a kind of Haskell
interpreter for the live-sequencer:
We are far from a complete Haskell 98 implementation and I am not keen on
implementing extensions that are not really needed and it seems that the
Haskell prime committee also does not have time for it.
So even if not all packages in the platform are Haskell 2010, I would
prefer that case-insensitive is Haskell 2010 for better portability, like
the split package was successfully converted to Haskell 2010 for inclusion
in the platform.
More information about the Libraries