From 649b50a9acfd9619b3ff9fc165fabe6477b4debc Mon Sep 17 00:00:00 2001
From: Duncan Coutts <duncan@community.haskell.org>
Date: Tue, 21 Jul 2015 18:46:17 +0100
Subject: [PATCH] Trivial refactoring: consistently use Left (not Right) for
 the error

---
 cabal-install/Distribution/Client/Freeze.hs      | 11 +++++------
 cabal-install/Distribution/Client/InstallPlan.hs |  5 +++--
 cabal-install/Distribution/Client/PlanIndex.hs   | 12 ++++++------
 3 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/cabal-install/Distribution/Client/Freeze.hs b/cabal-install/Distribution/Client/Freeze.hs
index 4d7d028d1b..f38512dbd5 100644
--- a/cabal-install/Distribution/Client/Freeze.hs
+++ b/cabal-install/Distribution/Client/Freeze.hs
@@ -197,16 +197,15 @@ pruneInstallPlan :: InstallPlan.InstallPlan
                  -> [PackageSpecifier SourcePackage]
                  -> [PlanPackage]
 pruneInstallPlan installPlan pkgSpecifiers =
-    mapLeft (removeSelf pkgIds . PackageIndex.allPackages) $
+    either (const brokenPkgsErr)
+           (removeSelf pkgIds . PackageIndex.allPackages) $
     InstallPlan.dependencyClosure installPlan pkgIds
   where
     pkgIds = [ packageId pkg | SpecificSourcePackage pkg <- pkgSpecifiers ]
-    mapLeft f (Left v)  = f v
-    mapLeft _ (Right _) = error "planPackages: installPlan contains broken packages"
     removeSelf [thisPkg] = filter (\pp -> packageId pp /= thisPkg)
-    removeSelf _ =
-        error $ "internal error: 'pruneInstallPlan' given "
-           ++ "unexpected package specifiers!"
+    removeSelf _  = error $ "internal error: 'pruneInstallPlan' given "
+                         ++ "unexpected package specifiers!"
+    brokenPkgsErr = error "planPackages: installPlan contains broken packages"
 
 
 freezePackages :: Package pkg => Verbosity -> [pkg] -> IO ()
diff --git a/cabal-install/Distribution/Client/InstallPlan.hs b/cabal-install/Distribution/Client/InstallPlan.hs
index 6e9afb8006..91da634445 100644
--- a/cabal-install/Distribution/Client/InstallPlan.hs
+++ b/cabal-install/Distribution/Client/InstallPlan.hs
@@ -672,10 +672,11 @@ configuredPackageProblems platform cinfo
 
 -- | Compute the dependency closure of a _source_ package in a install plan
 --
--- See `Distribution.Simple.dependencyClosure`
+-- See `Distribution.Client.PlanIndex.dependencyClosure`
 dependencyClosure :: InstallPlan
                   -> [PackageIdentifier]
-                  -> Either (PackageIndex PlanPackage) [(PlanPackage, [InstalledPackageId])]
+                  -> Either [(PlanPackage, [InstalledPackageId])]
+                            (PackageIndex PlanPackage)
 dependencyClosure installPlan pids =
     PlanIndex.dependencyClosure
       (planFakeMap installPlan)
diff --git a/cabal-install/Distribution/Client/PlanIndex.hs b/cabal-install/Distribution/Client/PlanIndex.hs
index 67c2801c0d..ca3be6fe36 100644
--- a/cabal-install/Distribution/Client/PlanIndex.hs
+++ b/cabal-install/Distribution/Client/PlanIndex.hs
@@ -27,7 +27,7 @@ import qualified Data.Graph as Graph
 import Data.Array ((!))
 import Data.Map (Map)
 import Data.Maybe (isNothing, fromMaybe, fromJust)
-import Data.Either (lefts)
+import Data.Either (rights)
 
 #if !MIN_VERSION_base(4,8,0)
 import Data.Monoid (Monoid(..))
@@ -131,7 +131,7 @@ dependencyInconsistencies fakeMap indepGoals index  =
     concatMap (dependencyInconsistencies' fakeMap) subplans
   where
     subplans :: [PackageIndex pkg]
-    subplans = lefts $
+    subplans = rights $
                  map (dependencyClosure fakeMap index)
                      (rootSets fakeMap indepGoals index)
 
@@ -253,11 +253,11 @@ dependencyClosure :: (PackageFixedDeps pkg, HasInstalledPackageId pkg)
                   => FakeMap
                   -> PackageIndex pkg
                   -> [InstalledPackageId]
-                  -> Either (PackageIndex pkg)
-                            [(pkg, [InstalledPackageId])]
+                  -> Either [(pkg, [InstalledPackageId])]
+                            (PackageIndex pkg)
 dependencyClosure fakeMap index pkgids0 = case closure mempty [] pkgids0 of
-  (completed, []) -> Left completed
-  (completed, _)  -> Right (brokenPackages fakeMap completed)
+  (completed, []) -> Right completed
+  (completed, _)  -> Left (brokenPackages fakeMap completed)
  where
     closure completed failed []             = (completed, failed)
     closure completed failed (pkgid:pkgids) =
-- 
GitLab