@@ -46,8 +46,11 @@ resolveConstraint c = fromMaybe (error msg) . resolveConstraint' c
46 where msg = "constraint " ++ display c ++ " cannot be resolved in Hackage"
46 where msg = "constraint " ++ display c ++ " cannot be resolved in Hackage"
48resolveConstraint' :: Constraint -> Hackage -> Maybe Version
48resolveConstraint' :: Constraint -> Hackage -> Maybe Version
49−resolveConstraint' (Dependency (PackageName name) vrange) hackage =
49+resolveConstraint' (Dependency (PackageName name) vrange) hackage
50+ | Just vset' <- Map.lookup name hackage
50− Set.findMax . Set.filter (`withinRange` vrange) . Map.keysSet <$> Map.lookup name hackage
51+ , vset <- Set.filter (`withinRange` vrange) (Map.keysSet vset')
52+ , not (Set.null vset) = Just (Set.findMax vset)
53+ | otherwise = Nothing
52data Options = Options
55data Options = Options
53 { hackageRepository :: FilePath
56 { hackageRepository :: FilePath