
Thank you for your help with this, too. Now I get another error in a different file where simply appending Eq b' doesn't do the trick: [170 of 180] Compiling XMonad.Actions.GridSelect ( XMonad/Actions/GridSelect.hs, dist/build/XMonad/Actions/GridSelect.o ) XMonad/Actions/GridSelect.hs:227:12: Could not deduce (Eq b') arising from a use of `nub' from the context (Enum b', Num b') bound by the type signature for diamondLayer :: (Enum b', Num b') => b' -> [(b', b')] at XMonad/Actions/GridSelect.hs:(226,1)-(229,35) Possible fix: add (Eq b') to the context of the type signature for diamondLayer :: (Enum b', Num b') => b' -> [(b', b')] In the expression: nub In the expression: nub $ ul ++ (map (negate *** id) ul) ++ (map (negate *** negate) ul) ++ (map (id *** negate) ul) In the expression: let ul = [... | x <- ...] in nub $ ul ++ (map (negate *** id) ul) ++ (map (negate *** negate) ul) ++ (map (id *** negate) ul) Following your earlier advice, I have tried replacing the line diamondLayer :: (Enum b', Num b') => b' -> [(b', b')] with both diamondLayer :: (Enum b', Num b', Eq b') => b' -> [(b', b')] as well as diamondLayer :: (Enum b', (Num b', Eq b')) => b' -> [(b', b')] but the compiler was unhappy about it in both occasions.