diff --git a/jsaddle-warp.cabal b/jsaddle-warp.cabal
--- a/jsaddle-warp.cabal
+++ b/jsaddle-warp.cabal
@@ -1,5 +1,5 @@
 name: jsaddle-warp
-version: 0.6.0.0
+version: 0.6.0.1
 cabal-version: >=1.10
 build-type: Simple
 license: MIT
diff --git a/src/Language/Javascript/JSaddle/Warp.hs b/src/Language/Javascript/JSaddle/Warp.hs
--- a/src/Language/Javascript/JSaddle/Warp.hs
+++ b/src/Language/Javascript/JSaddle/Warp.hs
@@ -18,25 +18,27 @@
     run
 #ifndef ghcjs_HOST_OS
   , jsaddleOr
+  , jsaddleApp
 #endif
 ) where
 
-import Language.Javascript.JSaddle.Types (JSM)
 #ifndef ghcjs_HOST_OS
 import Network.Wai.Handler.Warp
        (defaultSettings, setTimeout, setPort, runSettings)
 import Network.WebSockets (defaultConnectionOptions)
 
+import Language.Javascript.JSaddle.Types (JSM)
 import Language.Javascript.JSaddle.Run (syncPoint)
 import Language.Javascript.JSaddle.WebSockets (jsaddleOr, jsaddleApp)
 #endif
 
 -- | Run the given 'JSM' action as the main entry point.  Either directly
 --   in GHCJS or as a Warp server on the given port on GHC.
-run :: Int -> JSM () -> IO ()
 #ifdef ghcjs_HOST_OS
+run :: Int -> IO () -> IO ()
 run _port = id
 #else
+run :: Int -> JSM () -> IO ()
 run port f =
     runSettings (setPort port (setTimeout 3600 defaultSettings)) $
         jsaddleOr defaultConnectionOptions (f >> syncPoint) jsaddleApp
