diff --git a/llvm-tools.cabal b/llvm-tools.cabal
--- a/llvm-tools.cabal
+++ b/llvm-tools.cabal
@@ -1,5 +1,5 @@
 name: llvm-tools
-version: 0.2.0.0
+version: 0.2.0.1
 synopsis: Useful tools built on llvm-analysis
 license: BSD3
 license-file: LICENSE
@@ -59,7 +59,7 @@
 executable ViewIRGraph
   default-language: Haskell2010
   build-depends: base == 4.*,
-                 optparse-applicative >= 0.5.0,
+                 optparse-applicative >= 0.7.0 && < 0.8,
                  llvm-analysis >= 0.2.0,
                  llvm-tools >= 0.2.0.0,
                  containers, graphviz
diff --git a/tools/ViewIRGraph.hs b/tools/ViewIRGraph.hs
--- a/tools/ViewIRGraph.hs
+++ b/tools/ViewIRGraph.hs
@@ -112,13 +112,13 @@
 -- Command line helpers
 
 
-parseOutputType :: String -> Either ParseError OutputType
+parseOutputType :: String -> ReadM OutputType
 parseOutputType fmt =
   case fmt of
-    "Html" -> Right HtmlOutput
+    "Html" -> return HtmlOutput
     _ -> case reads fmt of
-      [(Gtk, [])] -> Right $ CanvasOutput Gtk
-      [(Xlib, [])] -> Right $ CanvasOutput Xlib
+      [(Gtk, [])] -> return $ CanvasOutput Gtk
+      [(Xlib, [])] -> return $ CanvasOutput Xlib
       _ -> case reads fmt of
-        [(gout, [])] -> Right $ FileOutput gout
-        _ -> Left $ ErrorMsg "Invalid output type"
+        [(gout, [])] -> return $ FileOutput gout
+        _ -> readerError "Invalid output type"
