diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -4,7 +4,7 @@
 import qualified Data.Text.IO as Text
 import           Horname
 import           Options
-import           Options.Applicative hiding (Parser, runParser)
+import           Options.Applicative hiding (Parser)
 
 main :: IO ()
 main = do
diff --git a/app/Options.hs b/app/Options.hs
--- a/app/Options.hs
+++ b/app/Options.hs
@@ -3,7 +3,6 @@
   , optsParser
   ) where
 
-import Data.Monoid
 import Options.Applicative
 
 data Opts = Opts
diff --git a/horname.cabal b/horname.cabal
--- a/horname.cabal
+++ b/horname.cabal
@@ -1,5 +1,5 @@
 name:                horname
-version:             0.1.3.0
+version:             0.2.0.0
 synopsis:            Rename function definitions returned by SMT solvers
 description:         Please see README.md
 homepage:            https://github.com/cocreature/horname#readme
@@ -12,7 +12,7 @@
 build-type:          Simple
 cabal-version:       >=1.10
 extra-source-files:  README.md
-tested-with:         GHC == 8.0.1
+tested-with:         GHC == 8.6.5
 
 executable horname
   hs-source-dirs:      app
@@ -21,7 +21,7 @@
   default-language:    Haskell2010
   build-depends:       base >= 4.9 && < 5
                      , horname
-                     , optparse-applicative >= 0.12 && < 0.14
+                     , optparse-applicative >= 0.14 && < 0.15
                      , text >= 1.2 && < 1.3
   ghc-options:         -Wall
 
@@ -33,10 +33,10 @@
                       Horname.Internal.SMT.Pretty
     default-language: Haskell2010
     build-depends:    base >= 4.9 && < 5
-                    , containers >= 0.5 && < 0.6
-                    , megaparsec >= 5.0 && < 5.2
+                    , containers >= 0.6 && < 0.7
+                    , megaparsec >= 7 && < 8
                     , text >= 1.2 && < 1.3
                     , these >= 0.7 && < 0.8
                     , uniplate >= 1.6 && < 1.7
-                    , wl-pprint-text >= 1.1 && < 1.2
+                    , wl-pprint-text >= 1.2 && < 1.3
     ghc-options:      -Wall
diff --git a/src/Horname.hs b/src/Horname.hs
--- a/src/Horname.hs
+++ b/src/Horname.hs
@@ -28,9 +28,9 @@
       inpResult = runParser parseDeclareFuns inpFile inp
   in case (outpResult, inpResult) of
        (Left err, Left err') ->
-         Left (These (parseErrorPretty err) (parseErrorPretty err'))
-       (Left err, _) -> Left (This (parseErrorPretty err))
-       (_, Left err) -> Left (That (parseErrorPretty err))
+         Left (These (errorBundlePretty err) (errorBundlePretty err'))
+       (Left err, _) -> Left (This (errorBundlePretty err))
+       (_, Left err) -> Left (That (errorBundlePretty err))
        (Right defineFuns, Right declareFuns) ->
          Right (extractDefinitions declareFuns defineFuns)
 
diff --git a/src/Horname/Internal/SMT/Parser.hs b/src/Horname/Internal/SMT/Parser.hs
--- a/src/Horname/Internal/SMT/Parser.hs
+++ b/src/Horname/Internal/SMT/Parser.hs
@@ -5,13 +5,15 @@
 import           Data.Generics.Uniplate.Data
 import           Data.Map.Strict (Map)
 import qualified Data.Map.Strict as Map
-import           Data.Monoid
 import           Data.Text (Text)
 import qualified Data.Text as Text
+import Data.Void
 import           Horname.Internal.SMT
 import           Text.Megaparsec
-import           Text.Megaparsec.Text
+import           Text.Megaparsec.Char
 
+type Parser = Parsec Void Text
+
 parseName :: Parser Text
 parseName = Text.pack <$> some (noneOf [' ', '\n', ')'])
 
@@ -67,7 +69,7 @@
 
 parseDefineFun :: Parser DefineFun
 parseDefineFun = do
-  _ <- manyTill anyChar (string "(define-fun")
+  _ <- manyTill anySingle (string "(define-fun")
   someSpace
   name <- parseName
   someSpace
@@ -90,7 +92,7 @@
 
 parseDeclareFun :: Parser (Text, [Text])
 parseDeclareFun = do
-  _ <- manyTill anyChar (string "; :annot (")
+  _ <- manyTill anySingle (string "; :annot (")
   name <- parseName
   someSpace
   args <-
