withStringProp :: (MonadIO m) => StringProp -> Display -> (Window -> Atom -> m b) -> m b
withStringProp prop dpy f = do
    rootw <- io $ rootWindow dpy $ defaultScreen dpy
    a     <- io $ internAtom dpy prop False
    f rootw a

-- | Set the value of a string property.
withStringProp :: (MonadIO m) => StringProp -> Display -> (Window -> Atom -> m b) -> m b
withStringProp prop dpy f = do
    rootw <- io $ rootWindow dpy $ defaultScreen dpy
    a     <- io $ internAtom dpy prop False
    f rootw a

-- | Set the value of a string property.
withStringProp prop dpy f = do
    rootw <- io $ rootWindow dpy $ defaultScreen dpy
    a     <- io $ internAtom dpy prop False
    f rootw a

-- | Set the value of a string property.