shiftAll :: WorkspaceId -> X ()
shiftAll tag = gets currentWindows >>= windows . sendAll
    where
        sendAll :: [Window] -> WindowSet -> WindowSet
        sendAll = flip $ foldl sendWindow
        sendWindow :: WindowSet -> Window -> WindowSet
        sendWindow = flip $ W.shiftWin tag
shiftAll :: WorkspaceId -> X ()
shiftAll tag = gets currentWindows >>= windows . sendAll
    where
        sendAll :: [Window] -> WindowSet -> WindowSet
        sendAll = flip $ foldl sendWindow
        sendWindow :: WindowSet -> Window -> WindowSet
        sendWindow = flip $ W.shiftWin tag
shiftAll tag = gets currentWindows >>= windows . sendAll
    where
        sendAll :: [Window] -> WindowSet -> WindowSet
        sendAll = flip $ foldl sendWindow
        sendWindow :: WindowSet -> Window -> WindowSet
        sendWindow = flip $ W.shiftWin tag