moveWindow :: Position -> Position -> Window -> X ()
moveWindow x y w = withDisplay $ moveWindow' w
moveWindow' :: Position -> Position -> Window -> Display -> X ()
moveWindow' x y w d = do float w
io $ moveWindow d w x y
fromWindowOp :: (Window -> X()) -> ManageHook
fromWindowOp fn = ask >>= \w -> liftX (fn w) >> doF id
doMove :: Position -> Position -> ManageHook
doMove x y = fromWindowOp (moveWindow x y)
...
[ className =? "xxx" --> doMove 150 300,
...