diff --git a/Mueval/ArgsParse.hs b/Mueval/ArgsParse.hs
--- a/Mueval/ArgsParse.hs
+++ b/Mueval/ArgsParse.hs
@@ -1,5 +1,4 @@
-{-# LANGUAGE CPP #-}
-module Mueval.ArgsParse (Options(..), interpreterOpts, getOptions) where
+module Mueval.ArgsParse (Options(..), interpreterOpts) where
 
 import Control.Monad (liftM)
 import System.Console.GetOpt
@@ -98,15 +97,3 @@
 
 header :: String
 header = "Usage: mueval [OPTION...] --expression EXPRESSION..."
-
--- | Just give us the end result options; this parsing for
---   us. Bonus points for handling UTF.
-getOptions :: [String] -> Either (Bool, String) Options
-getOptions = interpreterOpts . map decodeString
-
-decodeString :: String -> String
-#if __GLASGOW_HASKELL__ >= 702
-decodeString = id
-#else
-decodeString = Codec.decodeString
-#endif
diff --git a/Mueval/Interpreter.hs b/Mueval/Interpreter.hs
--- a/Mueval/Interpreter.hs
+++ b/Mueval/Interpreter.hs
@@ -18,8 +18,8 @@
 import           Data.List
 
 import           Language.Haskell.Interpreter (eval, set, reset, setImportsQ, loadModules, liftIO,
-                                     installedModulesInScope, languageExtensions,
-                                     typeOf, setTopLevelModules, runInterpreter, glasgowExtensions,
+                                     installedModulesInScope, languageExtensions, availableExtensions,
+                                     typeOf, setTopLevelModules, runInterpreter,
                                      OptionVal(..), Interpreter,
                                      InterpreterError(..),GhcError(..),
                                      Extension(UnknownExtension))
@@ -177,3 +177,40 @@
                 \(E.SomeException e) -> return . Exception . toStream . show $ e
     where uncons [] = End
           uncons (x:xs) = x `seq` Cons x (toStream xs)
+
+-- Copied from old hint, removed from hint since 0.5.0.
+glasgowExtensions :: [Extension]
+glasgowExtensions = intersect availableExtensions exts612 -- works also for 608 and 610
+    where exts612 = map readExt ["PrintExplicitForalls",
+                                 "ForeignFunctionInterface",
+                                 "UnliftedFFITypes",
+                                 "GADTs",
+                                 "ImplicitParams",
+                                 "ScopedTypeVariables",
+                                 "UnboxedTuples",
+                                 "TypeSynonymInstances",
+                                 "StandaloneDeriving",
+                                 "DeriveDataTypeable",
+                                 "FlexibleContexts",
+                                 "FlexibleInstances",
+                                 "ConstrainedClassMethods",
+                                 "MultiParamTypeClasses",
+                                 "FunctionalDependencies",
+                                 "MagicHash",
+                                 "PolymorphicComponents",
+                                 "ExistentialQuantification",
+                                 "UnicodeSyntax",
+                                 "PostfixOperators",
+                                 "PatternGuards",
+                                 "LiberalTypeSynonyms",
+                                 "ExplicitForAll",
+                                 "RankNTypes",
+                                 "ImpredicativeTypes",
+                                 "TypeOperators",
+                                 "RecursiveDo",
+                                 "DoRec",
+                                 "ParallelListComp",
+                                 "EmptyDataDecls",
+                                 "KindSignatures",
+                                 "GeneralizedNewtypeDeriving",
+                                 "TypeFamilies" ]
diff --git a/main.hs b/main.hs
--- a/main.hs
+++ b/main.hs
@@ -5,13 +5,13 @@
 module Main (main) where
 
 import Mueval.Parallel
-import Mueval.ArgsParse (getOptions)
+import Mueval.ArgsParse (interpreterOpts)
 import System.Environment
 import System.Exit
 
 main :: IO ()
 main = do args <- getArgs
           -- force parse errors in main's thread
-          case getOptions args of
+          case interpreterOpts args of
               Left (n,s) -> putStrLn s >> if n then exitSuccess else exitFailure
               Right opts -> forkedMain $! opts
diff --git a/mueval.cabal b/mueval.cabal
--- a/mueval.cabal
+++ b/mueval.cabal
@@ -1,5 +1,5 @@
 name:                mueval
-version:             0.9.1.1.2
+version:             0.9.3
 
 license:             BSD3
 license-file:        LICENSE
@@ -31,7 +31,7 @@
 library
         exposed-modules:     Mueval.Parallel, Mueval.Context, Mueval.Interpreter,
                              Mueval.ArgsParse, Mueval.Resources
-        build-depends:       base>=4 && < 5, containers, directory, mtl>2, filepath, unix, process,
+        build-depends:       base>= 4.5 && < 5, containers, directory, mtl>2, filepath, unix, process,
                              hint>=0.3.1, show>=0.3, Cabal, extensible-exceptions, simple-reflect,
                              QuickCheck
         ghc-options:         -Wall -static
