I've done my best to:
* maintain backwards compatibility. Configs that use these symbols should generate a warning, but still work perfectly correctly.
* ensure that all the places that used to export default values now also export "def", so that working configs can eliminate the warnings without changing their imports (or at worst change imports of defaultXPConfig, etc. to imports of def)
XMonad/Core.hs:195:13:
Warning: This binding for `def' shadows the existing binding
imported from `Data.Default' at XMonad/Core.hs:40:1-19
-- | Execute the argument, catching all exceptions. Either this function or
-- 'catchX' should be used at all callsites of user customized code.
userCode :: X a -> X (Maybe a)
userCode a = catchX (Just `liftM` a) (return Nothing)
-- | Same as userCode but with a default argument to return instead of using
-- Maybe, provided for convenience.
userCodeDef :: a -> X a -> X a
userCodeDef def a = fromMaybe def `liftM` userCode a