diff --git a/data-timeout.cabal b/data-timeout.cabal
--- a/data-timeout.cabal
+++ b/data-timeout.cabal
@@ -1,5 +1,5 @@
 Name: data-timeout
-Version: 0.1.1
+Version: 0.2
 Category: Data, Concurrency
 Stability: experimental
 Synopsis: 64-bit timeouts of nanosecond precision
@@ -26,7 +26,7 @@
 Library
   Build-Depends:
     base              >= 4 && < 5,
-    transformers-base >= 0.1
+    transformers-base >= 0.3
   Hs-Source-Dirs: src
   GHC-Options: -Wall
   Exposed-Modules:
diff --git a/src/Control/Concurrent/Timeout.hs b/src/Control/Concurrent/Timeout.hs
--- a/src/Control/Concurrent/Timeout.hs
+++ b/src/Control/Concurrent/Timeout.hs
@@ -29,7 +29,7 @@
 
 -- | A version of 'C.timeout' that takes 'Timeout' instead of number of
 --   microseconds.
-timeout ∷ MonadBase μ IO ⇒ Timeout → IO α → μ (Maybe α)
+timeout ∷ MonadBase IO μ ⇒ Timeout → IO α → μ (Maybe α)
 timeout tt _ | tt == instantly = return Nothing
 timeout tt io = liftBase $ do
   pid <- C.myThreadId
@@ -42,7 +42,7 @@
 
 -- | A version of 'C.threadDelay' that takes 'Timeout' instead of number of
 --   microseconds.
-threadDelay ∷ MonadBase μ IO ⇒ Timeout → μ ()
+threadDelay ∷ MonadBase IO μ ⇒ Timeout → μ ()
 threadDelay tt | tt == instantly = return ()
 threadDelay tt = liftBase $ C.threadDelay (fromIntegral us') >> go us'
   where us = tt #> MicroSecond
