Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/a5905fb5362dd9fb84c349ea4c170ff7e3114d8d

>---------------------------------------------------------------

commit a5905fb5362dd9fb84c349ea4c170ff7e3114d8d
Author: Duncan Coutts <[email protected]>
Date:   Fri May 9 15:20:07 2008 +0000

    Swap Either args so it's Either Error Ok
    Which seems to be the normal convention.

>---------------------------------------------------------------

 cabal-install/Hackage/Dependency.hs  |   26 ++++++++++++--------------
 cabal-install/Hackage/InstallPlan.hs |    6 +++---
 2 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/cabal-install/Hackage/Dependency.hs 
b/cabal-install/Hackage/Dependency.hs
index d81a5bd..8d9d04f 100644
--- a/cabal-install/Hackage/Dependency.hs
+++ b/cabal-install/Hackage/Dependency.hs
@@ -55,12 +55,10 @@ resolveDependencies :: OS
                     -> [UnresolvedDependency]
                     -> Either [Dependency] (InstallPlan a)
 resolveDependencies os arch comp (Just installed) available deps =
-  either Right Left $
   dependencyResolver naiveResolver
     os arch comp installed available deps
 
 resolveDependencies os arch comp Nothing available deps =
-  either Right Left $
   dependencyResolver bogusResolver
     os arch comp mempty available deps
 
@@ -77,7 +75,7 @@ type DependencyResolver a = OS
                          -> PackageIndex InstalledPackageInfo
                          -> PackageIndex AvailablePackage
                          -> [UnresolvedDependency]
-                         -> Either [InstallPlan.PlanPackage a] [Dependency]
+                         -> Either [Dependency] [InstallPlan.PlanPackage a]
 
 dependencyResolver
   :: DependencyResolver a
@@ -85,22 +83,22 @@ dependencyResolver
   -> PackageIndex InstalledPackageInfo
   -> PackageIndex AvailablePackage
   -> [UnresolvedDependency]
-  -> Either (InstallPlan a) [Dependency]
+  -> Either [Dependency] (InstallPlan a)
 dependencyResolver resolver os arch comp installed available deps =
   case resolver os arch comp (hideBrokenPackages installed) available deps of
-    Left pkgs ->
+    Left unresolved -> Left unresolved
+    Right pkgs ->
       case InstallPlan.new os arch comp (PackageIndex.fromList pkgs) of
-        Left  plan     -> Left plan
-        Right problems -> error $ unlines $
+        Right plan     -> Right plan
+        Left  problems -> error $ unlines $
             "internal error: could not construct a valid install plan."
           : "The proposed (invalid) plan contained the following problems:"
           : map InstallPlan.showPlanProblem problems
-    Right unresolved -> Right unresolved
 
 -- | This is an example resolver that says that every package failed.
 --
 failingResolver :: DependencyResolver a
-failingResolver _ _ _ _ _ deps = Right
+failingResolver _ _ _ _ _ deps = Left
   [ dep | UnresolvedDependency dep _ <- deps ]
 
 -- | This resolver thinks that every package is already installed.
@@ -108,8 +106,8 @@ failingResolver _ _ _ _ _ deps = Right
 bogusResolver :: DependencyResolver a
 bogusResolver os arch comp _ available deps =
   case unzipEithers (map resolveFromAvailable deps) of
-    (ok, [])      -> Left ok
-    (_ , missing) -> Right missing
+    (ok, [])      -> Right ok
+    (_ , missing) -> Left missing
   where
     resolveFromAvailable (UnresolvedDependency dep flags) =
       case latestAvailableSatisfying available dep of
@@ -196,7 +194,7 @@ getDependencies os arch comp installed available pkg flags
 
 packagesToInstall :: PackageIndex InstalledPackageInfo
                   -> [ResolvedDependency]
-                  -> Either [InstallPlan.PlanPackage a] [Dependency]
+                  -> Either [Dependency] [InstallPlan.PlanPackage a]
                      -- ^ Either a list of missing dependencies, or a graph
                      -- of packages to install, with their options.
 packagesToInstall allInstalled deps0 =
@@ -216,10 +214,10 @@ packagesToInstall allInstalled deps0 =
                                 allInstalled
                                 (getInstalled deps0)
 
-       in Left $ map InstallPlan.Configured selectedAvailable
+       in Right $ map InstallPlan.Configured selectedAvailable
               ++ map InstallPlan.PreExisting selectedInstalled
 
-    (missing, _) -> Right $ concat missing
+    (missing, _) -> Left $ concat missing
 
   where
     getAvailable :: ResolvedDependency
diff --git a/cabal-install/Hackage/InstallPlan.hs 
b/cabal-install/Hackage/InstallPlan.hs
index 271a199..9a17315 100644
--- a/cabal-install/Hackage/InstallPlan.hs
+++ b/cabal-install/Hackage/InstallPlan.hs
@@ -158,10 +158,10 @@ internalError msg = error $ "InstallPlan: internal error: 
" ++ msg
 -- | Build an installation plan from a valid set of resolved packages.
 --
 new :: OS -> Arch -> CompilerId -> PackageIndex (PlanPackage a)
-    -> Either (InstallPlan a) [PlanProblem a]
+    -> Either [PlanProblem a] (InstallPlan a)
 new os arch compiler index =
   case problems os arch compiler index of
-    [] -> Left InstallPlan {
+    [] -> Right InstallPlan {
             planIndex    = index,
             planGraph    = graph,
             planGraphRev = Graph.transposeG graph,
@@ -174,7 +174,7 @@ new os arch compiler index =
       where (graph, vertexToPkgId, pkgIdToVertex) =
               PackageIndex.dependencyGraph index
             noSuchPkgId = internalError "package is not in the graph"
-    probs -> Right probs
+    probs -> Left probs
 
 toList :: InstallPlan buildResult -> [PlanPackage buildResult]
 toList = PackageIndex.allPackages . planIndex



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to