更新 haskell 包后 xmonad 无法启动


#1
xmonad.hs:112:7: error:
    • Couldn't match expected type ‘((KeyMask, KeySym), m0 a0)
                                    -> ((KeyMask, KeySym), X ())’
                  with actual type ‘((KeyMask, KeySym), X ())’
    • The function ‘((modm, xK_b), sendMessage ToggleStruts)’
      is applied to one argument,
      but its type ‘((KeyMask, KeySym), X ())’ has none
      In the expression:
        ((modm, xK_b), sendMessage ToggleStruts)
          ((modm .|. shiftMask, xK_q), io (exitWith ExitSuccess))
      In the first argument of ‘(++)’, namely
        ‘[((modm, xK_b), sendMessage ToggleStruts)
            ((modm .|. shiftMask, xK_q), io (exitWith ExitSuccess)),
          ((modm, xK_q), spawn "xmonad --recompile; xmonad --restart"),
          ((modm .|. shiftMask, xK_Return), spawn "xfce4-terminal"),
          ((modm, xK_p), 
           spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\""),
          ....]’
    |
112 |       ((modm,               xK_b     ), sendMessage ToggleStruts)
    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

用 xmonad 的大神给指点一下方向


#2

用系统包管理器或者 stack 装,这样好歹会确认兼容,用 cabal 装会 break 很正常。

顺带你这估计是 Xmonad 改配置 API 了,自己查更新 log 去。


#3

使用 pacman 装的,之前装 xmonad 但是没装 ghc,装了 ghc 和 stack 之后挂了。所以可能不是更新,而是装 ghc 或 stack 导致的。