
New patches:

[eliminate a few Eq a constraints in StackSet.
David Roundy <droundy@darcs.net>**20070920210143] 
<
> {
hunk ./StackSet.hs 40
 
 import Prelude hiding (filter)
 import Data.Maybe   (listToMaybe,fromJust)
-import qualified Data.List as L (delete,deleteBy,find,splitAt,filter)
+import qualified Data.List as L (deleteBy,find,splitAt,filter)
 import qualified Data.Map  as M (Map,insert,delete,empty)
 
 -- $intro
hunk ./StackSet.hs 227
 -- becomes the current screen. If it is in the visible list, it becomes
 -- current.
 
-view :: (Eq a, Eq s, Eq i) => i -> StackSet i a s sd -> StackSet i a s sd
+view :: (Eq s, Eq i) => i -> StackSet i a s sd -> StackSet i a s sd
 view i s
     | not (i `tagMember` s)
       || i == tag (workspace (current s)) = s  -- out of bounds or current
hunk ./StackSet.hs 239
     | Just x <- L.find ((i==).tag)           (hidden  s)
     -- if it was hidden, it is raised on the xine screen currently used
     = s { current = (current s) { workspace = x }
-        , hidden = workspace (current s) : L.delete x (hidden s) }
+        , hidden = workspace (current s) : L.deleteBy tagEq x (hidden s) }
 
     | otherwise = s
  where screenEq x y = screen x == screen y
hunk ./StackSet.hs 243
+       tagEq x y = tag x == tag y
 
     -- 'Catch'ing this might be hard. Relies on monotonically increasing
     -- workspace tags defined in 'new'
hunk ./StackSet.hs 256
 -- screen, the workspaces of the current screen and the other screen are
 -- swapped.
 
-greedyView :: (Eq a, Eq s, Eq i) => i -> StackSet i a s sd -> StackSet i a s sd
+greedyView :: (Eq s, Eq i) => i -> StackSet i a s sd -> StackSet i a s sd
 greedyView w ws
  | any wTag (hidden ws) = view w ws
  | (Just s) <- L.find (wTag . workspace) (visible ws)
}
[remove unneeded Ord constraint.
David Roundy <droundy@darcs.net>**20070920210527] 
<
> {
hunk ./StackSet.hs 461
 
 -- | Only temporarily remove the window from the stack, thereby not destroying special
 -- information saved in the Stackset
-delete' :: (Ord a, Eq s) => a -> StackSet i a s sd -> StackSet i a s sd
+delete' :: (Eq a, Eq s) => a -> StackSet i a s sd -> StackSet i a s sd
 delete' w s = s { current = removeFromScreen (current s)
                 , visible = map removeFromScreen (visible s)
                 , hidden = map removeFromWorkspace (hidden s) }
}

Context:

[Use derived Show and Read instances for Mirror
Spencer Janssen <sjanssen@cse.unl.edu>**20070920205711] 
[define readLayout to create a SomeLayout based on a set of possible layout types.
David Roundy <droundy@darcs.net>**20070920181506] 
[add Read instance to Layout.
David Roundy <droundy@darcs.net>**20070920174529] 
[add Show instance to Layout
David Roundy <droundy@darcs.net>**20070920161208] 
[eliminate ugly OldLayout.
David Roundy <droundy@darcs.net>**20070920155237] 
[fmt, and tiny comment seeking clarification
Don Stewart <dons@galois.com>**20070917234658] 
[Eliminate Operations.sink too
Spencer Janssen <sjanssen@cse.unl.edu>**20070917214052] 
[Remove Operations functions which have StackSet equivalents, just use 'windows foo' instead
Spencer Janssen <sjanssen@cse.unl.edu>**20070917211953] 
[Change manpage token @@ to %! to avoid conflicts with Haddock (xmonad)
Alex Tarkovsky <alextarkovsky@gmail.com>**20070916235229] 
[Haddockify delete' comments
Spencer Janssen <sjanssen@cse.unl.edu>**20070917194114] 
[Fix float behaviour, add shiftWin.
Karsten Schoelzel <kuser@gmx.de>**20070910090329
 
 First, if float is called with window which is on a hidden workspace,
 then the window will remain on that hidden workspace.
 
 Now the focus should change more as expected:
 float w = (view current) . (shiftWin ws w)
     where
         current is the current screen/workspace
         shiftWin ws w is: - view the workspace w is on
             - set focus on w
             - shift ws
             - set focus back to window it was on that workspace
                 unless w was focused
 
 shiftWin was add to StackSet.hs 
] 
[Add delete' for use in shift
Karsten Schoelzel <kuser@gmx.de>**20070910113835
 
 Rename delete to delete' so we can clear floating status in delete,
 thus removing one special handling. 
 At the moment delete' is only used in shift, but is useful for temporarily
 removing a window from the stack.
] 
[update description field of cabal file
Don Stewart <dons@galois.com>**20070916023016] 
[move Layout stuff into class (hokey first cut).
David Roundy <droundy@darcs.net>**20070914215959] 
[pointfree looks nicer here
Don Stewart <dons@cse.unsw.edu.au>**20070911051928] 
[Remove redundant reveal
Spencer Janssen <sjanssen@cse.unl.edu>**20070910213807] 
[Add missing insert markers for generate-configs.sh in Config.hs
Alex Tarkovsky <alextarkovsky@gmail.com>**20070907120414] 
[Move lower boundary check into applySizeHints, because all users of applySizeHints
Karsten Schoelzel <kuser@gmx.de>**20070905192125
 do this manually.
] 
[export getAtom from XMonad.
Ivan Tarasov <Ivan.Tarasov@gmail.com>**20070825174156] 
[Use show rather than string hacks
Spencer Janssen <sjanssen@cse.unl.edu>**20070905202816] 
[switch WorkspaceId to String.
David Roundy <droundy@darcs.net>**20070820113658] 
[Alex Tarkovsky's docstring patch updated for conflicts
Spencer Janssen <sjanssen@cse.unl.edu>**20070905193558] 
[tasks done
Don Stewart <dons@cse.unsw.edu.au>**20070905004901] 
[TAG 0.3
Spencer Janssen <sjanssen@cse.unl.edu>**20070904195245] 
Patch bundle hash:
c6f6305daa9290f13ec6e780c3b2e60783e1915d
