[Haskell-cafe] Proposal: Shorter Import Syntax

Anthony Cowley acowley at seas.upenn.edu
Sat Jun 6 22:50:22 UTC 2015

On Sat, Jun 6, 2015 at 6:21 PM, Sven Panne <svenpanne at gmail.com> wrote:
> 2015-06-06 22:09 GMT+02:00 Anthony Cowley <acowley at seas.upenn.edu>:
>> I'll repeat myself:
> ... and so do I:
>> 1) The proposed extension will live behind a pragma
> That's exactly what I'm asking for: A new {-# LANGUAGE FunkyImports #-}
> pragma (name to be decided ;-), which must be mentioned in a cabal file's
> "extension:" field
> (https://www.haskell.org/cabal/users-guide/developing-packages.html#creating-a-package).
> Failing to mention a language extension is just as wrong as declaring wrong
> bounds.

This was clarified in several mails in the thread before yours
starting with a response to Herbert.

>> 2) cabal does not take language extensions into account when computing
>> a build plan
> If that's actually the case (can some Cabal devs clarify this?), than it's a
> Cabal bug, otherwise the "extension:" field would be meaningless and build
> plans would be fragile. Anyway, this has nothing to do per se with the
> proposal.

That is the state of affairs. After claiming in this thread that an
extension is the only way to help cabal, Herbert himself went on
github to open an issue requesting the feature
<https://github.com/haskell/cabal/issues/2644>. I'm not going to try
to explain or justify his actions, but the point is that your
predictions of how compatibility is sure to be broken have been based
on not reading the proposal followed by a misunderstanding of how our
tools have worked for years. Cabal should be improved, but if the
dozens of extensions we've seen thus far haven't caused widespread
havoc, then it seems unlikely that this one would.

>> The only way to give cabal a clue about a used extension is to put a
>> lower bound on base, but you specifically rejected that as ridiculous.
> That would in fact be ridiculous, just as saying "every release with a prime
> major version number implies the new language extension.". One could
> perfectly implement any base version without implementing the proposal.

And yet anybody who has seriously made an effort to preserve backwards
compatibility has had to do this effectively forever.

Again, I'm happy to mark you down as -1 on the proposal.


More information about the Haskell-Cafe mailing list