
On 4/06/2015, at 5:15 am, Anthony Cowley
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
This puts the list (Map) in the wrong place. You know how in English, "heavy" parts of a sentence go at the end? The "heavy" part of an import declaration is the impspec.
The Map identifier would imported unqualified, while M would be introduced as an alias for the qualified import of Data.Map.
I find that confusing. I expected it to mean that only Data.Map.Map would be available and that it would have to be referred to as M.Map. The core problem is that this is a bit too close to English syntax, where the placement of "as M" after (Map) suggests that it refers to (Map), rather than to Data.Map. The new syntax does not let us do anything we cannot do now. It is also asking too much to ask people to distinguish between import Full as Local (thingy) -- current import Full (thingy) as Local -- proposed Whatever its faults, the current scheme at least makes it obvious that 'as Local' refers to 'Full', not '(thingy)'.