@@ -183,7 +183,11 @@ typeCheckAll mainModuleName moduleName exps = go
183183 forM_ (map (\(ident, _, _) -> ident) vals) $ \name ->
184184 valueIsNotDefined moduleName name
185185 tys <- typesOf mainModuleName moduleName $ map (\(ident, _, ty) -> (ident, ty)) vals
186− vals' <- forM (zipWith (\(name, nameKind, _) (_, (val, ty)) -> (name, val, nameKind, ty)) vals tys) $ \(name, val, nameKind, ty) -> do
186+ vals' <- forM [ (name, val, nameKind, ty)
187+ | (name, nameKind, _) <- vals
188+ , (name', (val, ty)) <- tys
189+ , name == name'
190+ ] $ \(name, val, nameKind, ty) -> do
187191 addValue moduleName name ty nameKind
188192 return (name, nameKind, val)
189193 return $ BindingGroupDeclaration vals'