diff options
author | Spencer Janssen <sjanssen@cse.unl.edu> | 2007-05-08 17:21:16 +0200 |
---|---|---|
committer | Spencer Janssen <sjanssen@cse.unl.edu> | 2007-05-08 17:21:16 +0200 |
commit | cdf3b66fcc24069faf53f8d0f3d0553cd06ef30f (patch) | |
tree | 559e5497177a57720bd212106890a5aba6a7d0f5 | |
parent | cf9d260fcdbc549707f73dbc3c9dee9ce3f29093 (diff) | |
download | metatile-cdf3b66fcc24069faf53f8d0f3d0553cd06ef30f.tar metatile-cdf3b66fcc24069faf53f8d0f3d0553cd06ef30f.zip |
Remove unsafe use of head
darcs-hash:20070508152116-a5988-16a82d62661a5ccd0a95f88ced57cd3e9df5fd67
-rw-r--r-- | StackSet.hs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/StackSet.hs b/StackSet.hs index 38baca2..e0210f1 100644 --- a/StackSet.hs +++ b/StackSet.hs @@ -188,7 +188,8 @@ raiseFocus k w = case M.lookup k (cache w) of promote :: (Integral i, Ord a) => StackSet i j a -> StackSet i j a promote w = maybe w id $ do a <- peek w -- fail if null - let w' = w { stacks = M.adjust (\(f, s) -> (f, swap a (head s) s)) (current w) (stacks w) } + (f, xs@(x:_)) <- M.lookup (current w) (stacks w) + let w' = w { stacks = M.insert (current w) (f, swap a x xs) (stacks w) } return $ insert a (current w) w' -- and maintain focus (?) -- | Swap first occurences of 'a' and 'b' in list. |