From 208551111adaf25d1aaa8c73e6cddb9ca5c78ea4 Mon Sep 17 00:00:00 2001 From: Edsko de Vries Date: Thu, 12 Feb 2015 12:07:21 +0000 Subject: [PATCH] Add union operation to PSQ --- cabal-install/Distribution/Client/Dependency/Modular/PSQ.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cabal-install/Distribution/Client/Dependency/Modular/PSQ.hs b/cabal-install/Distribution/Client/Dependency/Modular/PSQ.hs index 7197cd3f84d..db2e320cd37 100644 --- a/cabal-install/Distribution/Client/Dependency/Modular/PSQ.hs +++ b/cabal-install/Distribution/Client/Dependency/Modular/PSQ.hs @@ -57,7 +57,7 @@ casePSQ (PSQ xs) n c = (k, v) : ys -> c k v (PSQ ys) splits :: PSQ k a -> PSQ k (a, PSQ k a) -splits = go id +splits = go id where go f xs = casePSQ xs (PSQ []) @@ -92,3 +92,6 @@ null (PSQ xs) = S.null xs toList :: PSQ k a -> [(k, a)] toList (PSQ xs) = xs + +union :: PSQ k a -> PSQ k a -> PSQ k a +union (PSQ xs) (PSQ ys) = PSQ (xs ++ ys)