I have the following in xmonad.hs:

myWorkspaces    = ["0", "1", "2"]  

...

         [((m .|. mod4Mask, key), screenWorkspace sc >>= flip whenJust (windows . f))   
              | (key, sc) <- zip [xK_y, xK_u, xK_i] [0..]                               
         , (f, m) <- [(W.shift, 0), (W.shift, shiftMask)]]

now, I'm also using screenLayout, giving me two 'workspaces' on a single screen

mod4-y & mod4-u work when I have two workspcaes visible, but mod4-i does not

when I only have one workspace visbile, mod4-u and mod4-i both do not work

is there some rule saying "you can only send windows to visible workspaces" ?

thanks!