@@ -141,10 +141,10 @@ parseFixityDeclaration = do
141141
142142parseImportDeclaration :: TokenParser Declaration
143143parseImportDeclaration = do
144− (mn, declType, asQ) <- parseImportDeclaration'
145− return $ ImportDeclaration mn declType asQ
144+ (mn, declType, asQ, isOldSyntax) <- parseImportDeclaration'
145+ return $ ImportDeclaration mn declType asQ isOldSyntax
146146
147−parseImportDeclaration' :: TokenParser (ModuleName, ImportDeclarationType, Maybe ModuleName)
147+parseImportDeclaration' :: TokenParser (ModuleName, ImportDeclarationType, Maybe ModuleName, Bool)
148148parseImportDeclaration' = do
149149 reserved "import"
150150 indented
@@ -152,16 +152,9 @@ parseImportDeclaration' = do
152152 where
153153 stdImport = do
154154 moduleName' <- moduleName
155− suffixHiding moduleName' <|> suffixQualifyingList moduleName'
156− where
157− suffixHiding mn = do
158− reserved "hiding"
159− declType <- qualifyingList Hiding
160− return (mn, declType, Nothing)
161− suffixQualifyingList mn = do
162− declType <- qualifyingList Explicit
163− qName <- P.optionMaybe qualifiedName
164− return (mn, declType, qName)
155+ declType <- reserved "hiding" *> qualifyingList Hiding <|> qualifyingList Explicit
156+ qName <- P.optionMaybe qualifiedName
157+ return (moduleName', declType, qName, False)
165158 qualifiedName = reserved "as" *> moduleName
166159 qualImport = do
167160 reserved "qualified"
@@ -169,7 +162,7 @@ parseImportDeclaration' = do
169162 moduleName' <- moduleName
170163 declType <- qualifyingList Explicit
171164 qName <- qualifiedName
172− return (moduleName', declType, Just qName)
165+ return (moduleName', declType, Just qName, True)
173166 qualifyingList expectedType = do
174167 idents <- P.optionMaybe $ indented *> parens (commaSep parseDeclarationRef)
175168 return $ fromMaybe Implicit (expectedType <$> idents)