@@ -148,7 +148,7 @@ desugarImports modules = do
148148 renameInModule' :: ExportEnvironment -> ExportEnvironment -> Module -> Either String Module
149149 renameInModule' unfilteredExports exports m@(Module mn _ _) = rethrowForModule m $ do
150150 let env = M.update (\_ -> M.lookup mn unfilteredExports) mn exports
151− let exps = fromMaybe (error "Module is missing in renameInModule'") $ M.lookup mn exports
151+ let exps = fromMaybe (error "Module is missing in renameInModule'") $ M.lookup mn exports
152152 imports <- resolveImports env m
153153 renameInModule imports env (elaborateExports exps m)
154154
@@ -160,7 +160,7 @@ rethrowForModule (Module mn _ _) = flip catchError $ \e -> throwError ("Error in
160160
161161-- |
162162-- Make all exports for a module explicit. This may still effect modules that have an exports list,
163−-- as it will also make all data constructor exports explicit.
163+-- as it will also make all data constructor exports explicit.
164164--
165165elaborateExports :: Exports -> Module -> Module
166166elaborateExports exps (Module mn decls _) = Module mn decls (Just $
@@ -178,6 +178,8 @@ renameInModule imports exports (Module mn decls exps) =
178178 where
179179 updateDecl (TypeInstanceDeclaration name cs cn ts ds) =
180180 TypeInstanceDeclaration name <$> updateConstraints cs <*> updateClassName cn <*> pure ts <*> pure ds
181+ updateDecl (ExternInstanceDeclaration name cs cn ts) =
182+ ExternInstanceDeclaration name <$> updateConstraints cs <*> updateClassName cn <*> pure ts
181183 updateDecl d = return d
182184
183185 updateVars :: Declaration -> Either String Declaration
@@ -378,6 +380,7 @@ resolveImport currentModule importModule exps imps = maybe importAll (foldM impo
378380 _ <- checkImportExists "type class" classes name
379381 typeClasses' <- updateImports (importedTypeClasses imp) name
380382 return $ imp { importedTypeClasses = typeClasses' }
383+ importExplicit _ _ = error "Invalid argument to importExplicit"
381384
382385 -- Find all exported data constructors for a given type
383386 allExportedDataConstructors :: ProperName -> [ProperName]