From 71e13e48a044a606dcd9d2e4c22200b2fe8aa164 Mon Sep 17 00:00:00 2001
From: Iustin Pop <iustin@google.com>
Date: Wed, 27 May 2009 21:50:02 +0100
Subject: [PATCH] Some cleanup of the PeerMap module

This patch removes some unused functions and does some cleanup of the
remaining ones.
---
 Ganeti/HTools/PeerMap.hs | 35 ++++++++++++++---------------------
 1 file changed, 14 insertions(+), 21 deletions(-)

diff --git a/Ganeti/HTools/PeerMap.hs b/Ganeti/HTools/PeerMap.hs
index 0f9af484f..5bef2a56d 100644
--- a/Ganeti/HTools/PeerMap.hs
+++ b/Ganeti/HTools/PeerMap.hs
@@ -8,17 +8,15 @@ implementation should be easy in case it's needed.
 -}
 
 module Ganeti.HTools.PeerMap
-    (
-     PeerMap,
-     Key,
-     Elem,
-     empty,
-     create,
-     accumArray,
-     Ganeti.HTools.PeerMap.find,
-     add,
-     remove,
-     maxElem
+    ( PeerMap
+    , Key
+    , Elem
+    , empty
+    , accumArray
+    , Ganeti.HTools.PeerMap.find
+    , add
+    , remove
+    , maxElem
     ) where
 
 import Data.Maybe (fromMaybe)
@@ -32,12 +30,10 @@ type Key = Ndx
 type Elem = Int
 type PeerMap = [(Key, Elem)]
 
+-- | Create a new empty map
 empty :: PeerMap
 empty = []
 
-create :: Key -> PeerMap
-create _ = []
-
 -- | Our reverse-compare function
 pmCompare :: (Key, Elem) -> (Key, Elem) -> Ordering
 pmCompare a b = (compare `on` snd) b a
@@ -64,7 +60,7 @@ find :: Key -> PeerMap -> Elem
 find k c = fromMaybe 0 $ lookup k c
 
 add :: Key -> Elem -> PeerMap -> PeerMap
-add k v c = addWith (\_ n -> n) k v c
+add k v c = addWith (flip const) k v c
 
 remove :: Key -> PeerMap -> PeerMap
 remove k c = case c of
@@ -72,10 +68,7 @@ remove k c = case c of
                (x@(x', _)):xs -> if k == x' then xs
                             else x:(remove k xs)
 
-to_list :: PeerMap -> [Elem]
-to_list c = snd $ unzip c
-
+-- | Find the maximum element. Since this is a sorted list, we just
+-- get the first one
 maxElem :: PeerMap -> Elem
-maxElem c = case c of
-              [] -> 0
-              (_, v):_ -> v
+maxElem c = if null c then 0 else snd . head $ c
-- 
GitLab