summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDon Stewart <dons@cse.unsw.edu.au>2007-04-30 04:53:19 +0200
committerDon Stewart <dons@cse.unsw.edu.au>2007-04-30 04:53:19 +0200
commitccdb9d2f939d586b4a2058d78ccf496f0a920aad (patch)
tree9f01bb51a329a5cc8f055688f5d3e87e4cbc6d6d
parent50acc330c987a406715025d6dcead4b304223bb3 (diff)
downloadmetatile-ccdb9d2f939d586b4a2058d78ccf496f0a920aad.tar
metatile-ccdb9d2f939d586b4a2058d78ccf496f0a920aad.zip
clean 'delete' a little
darcs-hash:20070430025319-9c5c1-e9f7308996d1400c1abd42d2d5f6ef30b8f01c06
-rw-r--r--StackSet.hs12
1 files changed, 5 insertions, 7 deletions
diff --git a/StackSet.hs b/StackSet.hs
index a480792..f21306f 100644
--- a/StackSet.hs
+++ b/StackSet.hs
@@ -169,14 +169,12 @@ insert k n old = new { cache = M.insert k n (cache new)
-- This can be used to ensure that a given element is not managed elsewhere.
-- If the element doesn't exist, the original StackSet is returned unmodified.
delete :: (Integral i, Ord a) => a -> StackSet i j a -> StackSet i j a
-delete k w = maybe w tweak (M.lookup k (cache w))
+delete k w = maybe w del (M.lookup k (cache w))
where
- tweak i = w { cache = M.delete k (cache w)
- , stacks = M.adjust (L.delete k) i (stacks w)
- , focus = M.update (\k' -> if k == k' then elemAfter k (stacks w M.! i)
- else Just k') i
- (focus w)
- }
+ del i = w { cache = M.delete k (cache w)
+ , stacks = M.adjust (L.delete k) i (stacks w)
+ , focus = M.update (\k' -> if k == k' then elemAfter k (stacks w M.! i)
+ else Just k') i (focus w) }
-- | /O(log n)/. If the given window is contained in a workspace, make it the
-- focused window of that workspace, and make that workspace the current one.