diff --git a/System/Console/Haskeline/Backend/Win32.hsc b/System/Console/Haskeline/Backend/Win32.hsc
index 4447519e58e17ac67b0169cd0ff1aabaff7a7804..8dd626fee3eb42c480f4f4c6417fb37e241bce9c 100644
--- a/System/Console/Haskeline/Backend/Win32.hsc
+++ b/System/Console/Haskeline/Backend/Win32.hsc
@@ -260,7 +260,7 @@ closeHandles :: Handles -> IO ()
 closeHandles hs = closeHandle (hIn hs) >> closeHandle (hOut hs)
 
 newtype Draw m a = Draw {runDraw :: ReaderT Handles m a}
-    deriving (Monad,MonadIO,MonadException, MonadReader Handles)
+    deriving (Functor, Applicative, Monad, MonadIO, MonadException, MonadReader Handles)
 
 type DrawM a = (MonadIO m, MonadReader Layout m) => Draw m a
 
diff --git a/haskeline.cabal b/haskeline.cabal
index 84166bf08a617a27c0aebaa0f7d2a1cccbd3a161..404bf65fc4330cb21494185ec920c1dc8cdf23b7 100644
--- a/haskeline.cabal
+++ b/haskeline.cabal
@@ -50,7 +50,7 @@ flag legacy-encoding
     Default: False
 
 Library
-    Build-depends: base >=4.3 && < 4.8, containers>=0.4 && < 0.6,
+    Build-depends: base >=4.3 && < 4.9, containers>=0.4 && < 0.6,
                    directory>=1.1 && < 1.3, bytestring>=0.9 && < 0.11,
                    filepath >= 1.2 && < 1.4, transformers >= 0.2 && < 0.5
     Default-Language: Haskell98