From a44994e3e03140d02fe3d4f539cde987b6206355 Mon Sep 17 00:00:00 2001
From: Edsko de Vries <edsko@well-typed.com>
Date: Mon, 1 Jun 2015 10:47:01 +0100
Subject: [PATCH] Move varPI to where Var is defined.

Addresses https://github.com/haskell/cabal/pull/2500#commitcomment-10798623
---
 .../Distribution/Client/Dependency/Modular/Dependency.hs   | 7 +++++++
 .../Distribution/Client/Dependency/Modular/Linking.hs      | 6 ------
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/cabal-install/Distribution/Client/Dependency/Modular/Dependency.hs b/cabal-install/Distribution/Client/Dependency/Modular/Dependency.hs
index 83f4e41ff2..4403f5b8c1 100644
--- a/cabal-install/Distribution/Client/Dependency/Modular/Dependency.hs
+++ b/cabal-install/Distribution/Client/Dependency/Modular/Dependency.hs
@@ -5,6 +5,7 @@ module Distribution.Client.Dependency.Modular.Dependency (
     Var(..)
   , simplifyVar
   , showVar
+  , varPI
     -- * Conflict sets
   , ConflictSet
   , showCS
@@ -94,6 +95,12 @@ showVar (P qpn) = showQPN qpn
 showVar (F qfn) = showQFN qfn
 showVar (S qsn) = showQSN qsn
 
+-- | Extract the package instance from a Var
+varPI :: Var QPN -> (QPN, Maybe I)
+varPI (P qpn)               = (qpn, Nothing)
+varPI (F (FN (PI qpn i) _)) = (qpn, Just i)
+varPI (S (SN (PI qpn i) _)) = (qpn, Just i)
+
 {-------------------------------------------------------------------------------
   Conflict sets
 -------------------------------------------------------------------------------}
diff --git a/cabal-install/Distribution/Client/Dependency/Modular/Linking.hs b/cabal-install/Distribution/Client/Dependency/Modular/Linking.hs
index d0dc94f3c9..b746b227a7 100644
--- a/cabal-install/Distribution/Client/Dependency/Modular/Linking.hs
+++ b/cabal-install/Distribution/Client/Dependency/Modular/Linking.hs
@@ -459,12 +459,6 @@ lgAddMember qpn@(Q pp pn) i lg = do
   Auxiliary
 -------------------------------------------------------------------------------}
 
--- | Extract the package instance from a Var
-varPI :: Var QPN -> (QPN, Maybe I)
-varPI (P qpn)               = (qpn, Nothing)
-varPI (F (FN (PI qpn i) _)) = (qpn, Just i)
-varPI (S (SN (PI qpn i) _)) = (qpn, Just i)
-
 allEqual :: Eq a => [a] -> Bool
 allEqual []       = True
 allEqual [_]      = True
-- 
GitLab