@@ -405,7 +405,7 @@ resolveImports env (Module currentModule decls _) =
405405--
406406resolveImport :: ModuleName -> ModuleName -> Exports -> ImportEnvironment -> Maybe ModuleName -> Maybe ExplicitImports -> Maybe HiddenImports -> Either ErrorStack ImportEnvironment
407407resolveImport currentModule importModule exps imps impQual explImports hiddenImports =
408− maybe importAll (foldM importExplicit imps) explImports
408+ maybe importAll (foldM (\m -> checkRefIsValid >=> (importExplicit m)) imps) explImports
409409 where
410410
411411 -- Import everything from a module
@@ -424,19 +424,16 @@ resolveImport currentModule importModule exps imps impQual explImports hiddenImp
424424 -- Import something explicitly
425425 importExplicit :: ImportEnvironment -> DeclarationRef -> Either ErrorStack ImportEnvironment
426426 importExplicit imp (PositionedDeclarationRef pos r) = rethrowWithPosition pos $ importExplicit imp r
427− importExplicit imp ref@(ValueRef name) = do
428− _ <- checkRefIsValid ref
427+ importExplicit imp (ValueRef name) = do
429428 values' <- updateImports (importedValues imp) name
430429 return $ imp { importedValues = values' }
431− importExplicit imp ref@(TypeRef name dctors) = do
432− _ <- checkRefIsValid ref
430+ importExplicit imp (TypeRef name dctors) = do
433431 types' <- updateImports (importedTypes imp) name
434432 let allDctors = allExportedDataConstructors name
435433 dctors' <- maybe (return allDctors) (mapM $ checkDctorExists allDctors) dctors
436434 dctors'' <- foldM updateImports (importedDataConstructors imp) dctors'
437435 return $ imp { importedTypes = types', importedDataConstructors = dctors'' }
438− importExplicit imp ref@(TypeClassRef name) = do
439− _ <- checkRefIsValid ref
436+ importExplicit imp (TypeClassRef name) = do
440437 typeClasses' <- updateImports (importedTypeClasses imp) name
441438 return $ imp { importedTypeClasses = typeClasses' }
442439 importExplicit _ _ = error "Invalid argument to importExplicit"