diff --git a/ghcjs-dom-jsffi.cabal b/ghcjs-dom-jsffi.cabal
--- a/ghcjs-dom-jsffi.cabal
+++ b/ghcjs-dom-jsffi.cabal
@@ -1,5 +1,5 @@
 name: ghcjs-dom-jsffi
-version: 0.7.0.3
+version: 0.7.0.4
 cabal-version: >=1.24
 build-type: Simple
 license: MIT
diff --git a/src/GHCJS/DOM.hs b/src/GHCJS/DOM.hs
--- a/src/GHCJS/DOM.hs
+++ b/src/GHCJS/DOM.hs
@@ -27,14 +27,14 @@
 foreign import javascript unsafe "$r = document"
   ghcjs_currentDocument :: IO (Nullable Document)
 
-currentWindow :: IO (Maybe Window)
-currentWindow = nullableToMaybe <$> ghcjs_currentWindow
-currentWindowUnchecked :: IO Window
-currentWindowUnchecked = fromJust <$> currentWindow
-currentDocument :: IO (Maybe Document)
-currentDocument = nullableToMaybe <$> ghcjs_currentDocument
-currentDocumentUnchecked :: IO Document
-currentDocumentUnchecked = fromJust <$> currentDocument
+currentWindow :: MonadDOM m => m (Maybe Window)
+currentWindow = liftDOM $ nullableToMaybe <$> ghcjs_currentWindow
+currentWindowUnchecked :: MonadDOM m => m Window
+currentWindowUnchecked = liftDOM $ fromJust <$> currentWindow
+currentDocument :: MonadDOM m => m (Maybe Document)
+currentDocument = liftDOM $ nullableToMaybe <$> ghcjs_currentDocument
+currentDocumentUnchecked :: MonadDOM m => m Document
+currentDocumentUnchecked = liftDOM $ fromJust <$> currentDocument
 
 syncPoint :: IO ()
 syncPoint = return ()
