diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -20,7 +20,7 @@
   let instDataDir = datadir $ absoluteInstallDirs pDesc lbi (fromFlag $ copyDest defaultCopyFlags)
   putStrLn "To use ghc-vis you have to load its ghci file in GHCi. To do this automatically when GHCi is started run:"
   case stripPrefix "mingw" os of
-    Just _ -> putStrLn $ "echo :script " ++ (instDataDir </> "ghci") ++ " >> %APPDATA%\\ghc\\ghci.conf"
+    Just _ -> putStrLn $ "echo \":script " ++ (instDataDir </> "ghci") ++ "\" >> $APPDATA/ghc/ghci.conf"
     Nothing -> putStrLn $ "echo \":script " ++ (instDataDir </> "ghci") ++ "\" >> ~/.ghci"
 
   oldHook args iflags pDesc lbi
diff --git a/ghc-vis.cabal b/ghc-vis.cabal
--- a/ghc-vis.cabal
+++ b/ghc-vis.cabal
@@ -1,14 +1,14 @@
 name:               ghc-vis
-version:            0.8
+version:            0.9
 license:            BSD3
 license-file:       LICENSE
 category:           GHC, Debug, Development
 cabal-version:      >= 1.10
 build-type:         Custom
-author:             Dennis Felsing, Joachim Breitner
+author:             Dennis Felsing, Joachim Breitner, Contributors
 maintainer:         Dennis Felsing <dennis@felsin9.de>
 homepage:           http://felsin9.de/nnis/ghc-vis
-copyright:          Dennis Felsing 2012-2016
+copyright:          Dennis Felsing 2012-2018
 synopsis:           Live visualization of data structures in GHCi
 description:        Visualize live data structures in GHCi. Evaluation is not
                     forced and you can interact with the visualized data
@@ -20,7 +20,7 @@
                     how it can be used with GHCi's debugger:
                     <http://felsin9.de/nnis/ghc-vis/#combined-debugger>
 
-tested-with: GHC == 7.4.1, GHC == 7.4.2, GHC == 7.6.1, GHC == 7.6.2, GHC == 7.6.3, GHC == 7.8.3, GHC == 7.8.4, GHC == 7.10.1, GHC == 7.10.2, GHC == 7.10.3
+tested-with: GHC == 7.4.1, GHC == 7.4.2, GHC == 7.6.1, GHC == 7.6.2, GHC == 7.6.3, GHC == 7.8.3, GHC == 7.8.4, GHC == 7.10.1, GHC == 7.10.2, GHC == 7.10.3, GHC == 8.0.2
 data-files: ghci data/main.ui data/welcome.svg data/legend_graph.svg data/legend_list.svg data/icon_collapse.svg data/icon_evaluate.svg data/hover_collapse.svg data/hover_evaluate.svg
 Extra-source-files: nonghci-test.hs
 
@@ -40,12 +40,12 @@
   Exposed-modules: GHC.Vis
   Other-modules: GHC.Vis.Internal GHC.Vis.Types GHC.Vis.View.List GHC.Vis.View.Common Paths_ghc_vis
   Default-Language: Haskell2010
-  Build-depends: base >= 4.5 && < 4.9,
+  Build-depends: base >= 4.5 && < 4.10,
                  mtl >= 2.0 && < 2.3,
                  fgl >= 5.4 && < 5.6,
                  deepseq >= 1.3,
                  text >= 0.11 && < 1.3,
-                 transformers >= 0.3 && < 0.5,
+                 transformers >= 0.3 && < 0.6,
                  containers >= 0.4 && < 0.6,
                  gtk3 >= 0.12 && < 0.15,
                  svgcairo >= 0.12 && < 0.14,
diff --git a/src/GHC/Vis.hs b/src/GHC/Vis.hs
--- a/src/GHC/Vis.hs
+++ b/src/GHC/Vis.hs
@@ -225,7 +225,7 @@
   Right errorMsg -> do putStrLn errorMsg
                        return $ Just errorMsg
   Left _ -> do put $ ExportSignal ((\(Left x) -> x) mbDrawFn) filename
-               return Nothing
+               return (Nothing :: Maybe String)
 
   where mbDrawFn = case map toLower (reverse . take 4 . reverse $ filename) of
           ".svg"  -> Left withSVGSurface
@@ -234,6 +234,7 @@
           _:".ps" -> Left withPSSurface
           _       -> Right "Unknown file extension, try one of the following: .svg, .pdf, .ps, .png"
 
+        withPNGSurface :: FilePath -> Double -> Double -> (Surface -> IO a) -> IO a
         withPNGSurface filePath width height action =
           withImageSurface FormatARGB32 (ceiling width) (ceiling height) $
           \surface -> do
@@ -566,7 +567,7 @@
           modifyMVar_ visHeapHistory (\(i,xs) -> return (max 0 (min (length xs - 1) (f i)), xs))
           return False
         ExportSignal d f -> do
-          catch (runCorrect exportView >>= \e -> e d f)
+          catch (runCorrect (exportView :: View -> (forall a. FilePath -> Double -> Double -> (Surface -> IO a) -> IO a) -> String -> IO ()) >>= \e -> e d f)
             (\e -> do let err = show (e :: IOException)
                       hPutStrLn stderr $ "Couldn't export to file \"" ++ f ++ "\": " ++ err
                       return ())
diff --git a/src/GHC/Vis/Internal.hs b/src/GHC/Vis/Internal.hs
--- a/src/GHC/Vis/Internal.hs
+++ b/src/GHC/Vis/Internal.hs
@@ -403,4 +403,4 @@
   | isSymbol x          = True
   | isPunctuation x     = True
   | otherwise           = False
-  where ascSymbols = "!#$%&*+./<=>?@  \\^|-~:"
+  where ascSymbols = ("!#$%&*+./<=>?@  \\^|-~:" :: String)
diff --git a/src/GHC/Vis/View/List.hs b/src/GHC/Vis/View/List.hs
--- a/src/GHC/Vis/View/List.hs
+++ b/src/GHC/Vis/View/List.hs
@@ -328,7 +328,7 @@
 
 pangoEmptyLayout :: Render PangoLayout
 pangoEmptyLayout = do
-  layout <- createLayout ""
+  layout <- createLayout ("" :: String)
 
   liftIO $ do
     font <- fontDescriptionFromString fontName
