For the edification of others who come later, I got this working w/ a little off list help from a list member... plus addressed a couple other issues I was having and my beginner config now looks like:

import XMonad
import XMonad.Config.Gnome
import XMonad.Layout.NoBorders
import qualified XMonad.StackSet as W
import XMonad.Util.EZConfig (additionalKeys)
import XMonad.Layout.IndependentScreens
import XMonad.Actions.UpdatePointer
import XMonad.Hooks.DynamicLog

conf = gnomeConfig {
        workspaces = myWorkspaces
        , modMask = mod4Mask
        , terminal = "gnome-terminal"
        , layoutHook  = smartBorders (layoutHook gnomeConfig)
        , logHook = dynamicLog >> updatePointer (Relative 0.5 0.5)
  } `additionalKeys` myKeys

myWorkspaces = withScreens 2 ["1", "2", "3", "4", "5", "6", "7", "8", "9"]

myKeys =
         [
         -- workspaces are distinct by screen
          ((m .|. mod4Mask, k), windows $ onCurrentScreen f i)
               | (i, k) <- zip (workspaces' conf) [xK_1 .. xK_9]
               , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]
         ]
         ++
         [
         -- swap screen order
         ((m .|. mod4Mask, key), screenWorkspace sc >>= flip whenJust (windows . f))
               | (key, sc) <- zip [xK_w, xK_e, xK_r] [1,0,2]
               , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
         ++
         [
          -- rebind meta-p to dmenu 
          ((mod4Mask, xK_p), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"")
         ]

main = xmonad conf
                

On Thu, Jan 20, 2011 at 12:44 PM, Daniel Schoepe <daniel.schoepe@googlemail.com> wrote:
Excerpts from Sean Allen's message of Wed Jan 19 15:41:49 +0100 2011:
> myKeys = [
>           -- rebind meta-p to dmenu
>           ((mod4Mask, xK_p), spawn "exe=`dmenu_path | dmenu` && eval \"exec
> $exe\"")
>          ]
>          ++
>          [
>           ((m .|. mod4Mask, k), windows $ onCurrentScreen f i)
>                | (i, k) <- zip (workspaces' conf) [xK_1 .. xK_9]
>                , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]
>          ]
>
> but conf on this line isn't in scope:
>
>                | (i, k) <- zip (workspaces' conf) [xK_1 .. xK_9]

myKeys is given the config as an argument, which the author of the
code that causes the error assumed to be named conf. So you'd have
to write:

myKeys conf = ..

Regards,
Daniel

_______________________________________________
xmonad mailing list
xmonad@haskell.org
http://www.haskell.org/mailman/listinfo/xmonad