I see. That solved that problem, but now I get an error saying:

    Couldn't match expected type `W.Workspace i l a'
           against inferred type `W.Screen
                                    WorkspaceId (Layout Window) Window ScreenId ScreenDetail'
    In the first argument of `(:)', namely `W.current ws'
    In the second argument of `($)', namely
        `W.current ws : W.visible ws'
    In the second argument of `notElem', namely
        `(map W.tag $ W.current ws : W.visible ws)'

and also in the line where I use viewHidden:

    Couldn't match expected type `X ()'
           against inferred type `W.StackSet WorkspaceId l a s sd
                                  -> W.StackSet WorkspaceId l a s sd'
      Expected type: (WorkspaceId -> X (), t)
      Inferred type: (WorkspaceId
                      -> W.StackSet WorkspaceId l a s sd
                      -> W.StackSet WorkspaceId l a s sd,
                      KeyMask)
    In the expression: (W.shift, shiftMask)
    In the expression: [(viewHidden, 0), (W.shift, shiftMask)]

I think the second error is probably because of the first, which seems to be a type mismatch. Is there a quick fix for this?

Thanks for your help,
Bryan

On 08/02/2012 11:32 AM, Brandon Allbery wrote:
On Thu, Aug 2, 2012 at 2:20 PM, Bryan Huh <bhh1988@gmail.com> wrote:
I'm sorry if this is a stupid question, but the xmonad.hs doesn't compile saying that "when" is out of scope. It seems to not recognize the keyword "when." I tried "if" as well but then it tells me there's a parse error. Are you sure that what you have compiles for you?

"when" isn't a keyword; it's a function defined in Control.Monad.  (Haskell's laziness means that many things that would have to be baked-in syntax in other languages can be written as functions, and its syntax means those functions behave as if they *were* baked into the language.)  So all you should need to do is add

    import Control.Monad (when)

up with the other import statements.

--
brandon s allbery                                      allbery.b@gmail.com
wandering unix systems administrator (available)     (412) 475-9364 vm/sms