@@ -99,10 +99,20 @@ parseImportDeclaration :: P.Parsec String ParseState Declaration
99parseImportDeclaration = do
99parseImportDeclaration = do
100 reserved "import"
100 reserved "import"
102+ qualImport <|> stdImport
102− moduleName' <- moduleName
105+ moduleName' <- moduleName
103− idents <- P.optionMaybe $ parens $ commaSep parseDeclarationRef
106+ idents <- P.optionMaybe $ parens $ commaSep parseDeclarationRef
107+ return $ ImportDeclaration moduleName' idents Nothing
109+ reserved "qualified"
111+ moduleName' <- moduleName
112+ idents <- P.optionMaybe $ parens $ commaSep parseDeclarationRef
104− asQ <- P.optionMaybe $ reserved "as" *> moduleName
113+ reserved "as"
105− return $ ImportDeclaration moduleName' idents asQ
115+ return $ ImportDeclaration moduleName' idents (Just asQ)
107parseDeclarationRef :: P.Parsec String ParseState DeclarationRef
117parseDeclarationRef :: P.Parsec String ParseState DeclarationRef
108parseDeclarationRef = ValueRef <$> parseIdent
118parseDeclarationRef = ValueRef <$> parseIdent