withDrawingColors :: -- MonadIO m =>
                     Display -> Drawable -> String -> String
                    -> (AXftDraw -> AXftColor -> AXftColor -> IO ()) -> IO ()
withDrawingColors dpy drw fc bc f = do
  let screen = defaultScreenOfDisplay dpy
      colormap = defaultColormapOfScreen screen
      visual = defaultVisualOfScreen screen
  fc' <- initAXftColor dpy visual colormap fc
  bc' <- initAXftColor dpy visual colormap bc
  withAXftDraw dpy drw visual colormap $ \draw -> f draw fc' bc'
#endif
withDrawingColors :: -- MonadIO m =>
                     Display -> Drawable -> String -> String
                    -> (AXftDraw -> AXftColor -> AXftColor -> IO ()) -> IO ()
withDrawingColors dpy drw fc bc f = do
  let screen = defaultScreenOfDisplay dpy
      colormap = defaultColormapOfScreen screen
      visual = defaultVisualOfScreen screen
  fc' <- initAXftColor dpy visual colormap fc
  bc' <- initAXftColor dpy visual colormap bc
  withAXftDraw dpy drw visual colormap $ \draw -> f draw fc' bc'
#endif
withDrawingColors dpy drw fc bc f = do
  let screen = defaultScreenOfDisplay dpy
      colormap = defaultColormapOfScreen screen
      visual = defaultVisualOfScreen screen
  fc' <- initAXftColor dpy visual colormap fc
  bc' <- initAXftColor dpy visual colormap bc
  withAXftDraw dpy drw visual colormap $ \draw -> f draw fc' bc'
#endif