diff --git a/doctest/ghci-wrapper/src/Language/Haskell/GhciWrapper.hs b/doctest/ghci-wrapper/src/Language/Haskell/GhciWrapper.hs
--- a/doctest/ghci-wrapper/src/Language/Haskell/GhciWrapper.hs
+++ b/doctest/ghci-wrapper/src/Language/Haskell/GhciWrapper.hs
@@ -15,7 +15,7 @@
 import           System.Exit
 import           Control.Monad
 import           Control.Exception
-import           Data.List
+import           Data.List (isSuffixOf)
 import           Data.Maybe
 
 data Config = Config {
@@ -54,20 +54,20 @@
   setMode stdin_
   setMode stdout_
   let interpreter = Interpreter {hIn = stdin_, hOut = stdout_, process = processHandle}
-  _ <- eval interpreter "import System.IO"
-  _ <- eval interpreter "import GHC.IO.Handle"
+  _ <- eval interpreter "import qualified System.IO"
+  _ <- eval interpreter "import qualified GHC.IO.Handle"
   -- The buffering of stdout and stderr is NoBuffering
-  _ <- eval interpreter "hDuplicateTo stdout stderr"
+  _ <- eval interpreter "GHC.IO.Handle.hDuplicateTo System.IO.stdout System.IO.stderr"
   -- Now the buffering of stderr is BlockBuffering Nothing
   -- In this situation, GHC 7.7 does not flush the buffer even when
   -- error happens.
-  _ <- eval interpreter "hSetBuffering stdout LineBuffering"
-  _ <- eval interpreter "hSetBuffering stderr LineBuffering"
+  _ <- eval interpreter "GHC.IO.Handle.hSetBuffering System.IO.stdout GHC.IO.Handle.LineBuffering"
+  _ <- eval interpreter "GHC.IO.Handle.hSetBuffering System.IO.stderr GHC.IO.Handle.LineBuffering"
 
   -- this is required on systems that don't use utf8 as default encoding (e.g.
   -- Windows)
-  _ <- eval interpreter "hSetEncoding stdout utf8"
-  _ <- eval interpreter "hSetEncoding stderr utf8"
+  _ <- eval interpreter "GHC.IO.Handle.hSetEncoding System.IO.stdout GHC.IO.Handle.utf8"
+  _ <- eval interpreter "GHC.IO.Handle.hSetEncoding System.IO.stderr GHC.IO.Handle.utf8"
 
   _ <- eval interpreter ":m - System.IO"
   _ <- eval interpreter ":m - GHC.IO.Handle"
@@ -102,7 +102,7 @@
 putExpression Interpreter{hIn = stdin} preserveIt e = do
   hPutStrLn stdin e
   when preserveIt $ hPutStrLn stdin $ "let " ++ itMarker ++ " = it"
-  hPutStrLn stdin (marker ++ " :: String")
+  hPutStrLn stdin (marker ++ " :: Data.String.String")
   when preserveIt $ hPutStrLn stdin $ "let it = " ++ itMarker
   hFlush stdin
 
diff --git a/sensei.cabal b/sensei.cabal
--- a/sensei.cabal
+++ b/sensei.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.3.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
 
 name:           sensei
-version:        0.5.0
+version:        0.6.0
 synopsis:       Automatically run Hspec tests on file modifications
 category:       Development
 homepage:       https://github.com/hspec/sensei#readme
