main = xmonad $ defaultConfig {manageHook = composeAll [className =? "xclock" --> doFloat]}
Class names almost always start with an uppercase letter; this is "always" for Xt-based stuff like xclock. so your rule doesn't match. Use "Xclock" instead of "xclock".
(For historical reasons, WM_CLASS is not a list of classes, it is a list of [appName, className]. Always use the second string reported by "xprop WM_CLASS". Or see the window properties script in xmonad-contrib's scripts directory.)
--