[Haskell-cafe] Proposal: Shorter Import Syntax

Anthony Cowley acowley at seas.upenn.edu
Wed Jun 3 17:15:33 UTC 2015

Hi Everyone,

I didn't think this would see any resistance as it doesn't break
anything, but this is the internet, so, if you haven't already, take a
look at this GHC feature request

The idea is that rather than writing,

import Data.Map (Map)
import qualified Data.Map as M

you could instead write,

import Data.Map (Map) as M

The Map identifier would imported unqualified, while M would be
introduced as an alias for the qualified import of Data.Map.

Note that, currently, following a parenthesized group with the "as"
keyword is a parse error. So allowing this syntax would not affect any
currently working programs.

I've mentioned this proposal before and gotten good response, so I
finally wrote it up last night after people on IRC responded
positively to it. As well as IRC and trac, I put the link up on
Twitter to get it in front of a large audience, and here's what we
have after a bit over 12 hours (not counting the handful of supporters
in IRC):


You can see the tweet at

I'll try to summarize the two negative votes: 1) This isn't that big a
burden, and we should instead focus on controlled export of class
instances; and 2) We should instead focus on exporting name spaces,
and that the ordering of parentheses and the "as" keyword is too close
to the existing "import Foo as F(foo)" syntax.

Since there are these negative votes, I think it best if as many
people as possible at least see the proposal so the GHC developers can
get a better sense for the overall response.


More information about the Haskell-Cafe mailing list