in my .xmonad/xmonad.hs , I have:

         ++                                                                             
         [((m .|. mod4Mask, key), screenWorkspace sc >>= flip whenJust (windows . f))   
              | (key, sc) <- zip [xK_a, xK_f] [0..] , (f, m) <- [(W.view, 0)]]          
         ++                                                                             
         [((m .|. mod4Mask, key), screenWorkspace sc >>= flip whenJust (windows . f))   
              | (key, sc) <- zip [xK_s, xK_d] [0..] , (f, m) <- [(W.shift, 0)]] 

now, instead of this, I'd perfer to have something where

xK_f alternates between workspace 0 & 1
I'd also like to make xK_d to send current window to other workspace

(this requires that I somehow know what my current workspace is -- is there a function to return this?)