diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,11 @@
 # Changelog for ghc-lib-parser-ex
 
+## 0.20200901 released 2020-09-01
+- Update to `ghc-lib-0.20200901`
+
+## 8.10.0.16 released 2020-08-08
+- Update to ghc-8.10.2.
+
 ## 0.20200801 released 2020-08-01
 - Update to `ghc-lib-0.20200801`
 
diff --git a/ghc-lib-parser-ex.cabal b/ghc-lib-parser-ex.cabal
--- a/ghc-lib-parser-ex.cabal
+++ b/ghc-lib-parser-ex.cabal
@@ -1,6 +1,6 @@
 cabal-version: >= 1.18
 name:           ghc-lib-parser-ex
-version:        0.20200801
+version:        0.20200901
 description:    Please see the README on GitHub at <https://github.com/shayne-fletcher/ghc-lib-parser-ex#readme>
 homepage:       https://github.com/shayne-fletcher/ghc-lib-parser-ex#readme
 bug-reports:    https://github.com/shayne-fletcher/ghc-lib-parser-ex/issues
diff --git a/src/Language/Haskell/GhclibParserEx/GHC/Hs/ExtendInstances.hs b/src/Language/Haskell/GhclibParserEx/GHC/Hs/ExtendInstances.hs
--- a/src/Language/Haskell/GhclibParserEx/GHC/Hs/ExtendInstances.hs
+++ b/src/Language/Haskell/GhclibParserEx/GHC/Hs/ExtendInstances.hs
@@ -20,6 +20,7 @@
 
 #if defined (GHCLIB_API_811)
 import GHC.Utils.Outputable
+import GHC.Driver.Ppr
 #else
 import Outputable
 #endif
@@ -39,7 +40,11 @@
 -- string representations.
 toStr :: Data a => HsExtendInstances a -> String
 toStr (HsExtendInstances e) =
+#if defined(GHCLIB_API_811)
+  showPprUnsafe $ showAstData BlankSrcSpan e
+#else
   showSDocUnsafe $ showAstData BlankSrcSpan e
+#endif
 
 instance Data a => Eq (HsExtendInstances a) where (==) a b = toStr a == toStr b
 instance Data a => Ord (HsExtendInstances a) where compare = compare `on` toStr
@@ -52,4 +57,9 @@
 
 -- Use 'ppr' for 'Show'.
 instance Outputable a => Show (HsExtendInstances a) where
-  show (HsExtendInstances e) =  showSDocUnsafe $ ppr e
+  show (HsExtendInstances e) =
+#if defined(GHCLIB_API_811)
+    showPprUnsafe $ ppr e
+#else
+    showSDocUnsafe $ ppr e
+#endif
diff --git a/src/Language/Haskell/GhclibParserEx/GHC/Parser.hs b/src/Language/Haskell/GhclibParserEx/GHC/Parser.hs
--- a/src/Language/Haskell/GhclibParserEx/GHC/Parser.hs
+++ b/src/Language/Haskell/GhclibParserEx/GHC/Parser.hs
@@ -89,7 +89,12 @@
 parseDeclaration = parse Parser.parseDeclaration
 
 parseExpression :: String -> DynFlags -> ParseResult (LHsExpr GhcPs)
-#if defined (GHCLIB_API_811) || defined (GHCLIB_API_810)
+#if defined (GHCLIB_API_811)
+parseExpression s flags =
+  case parse Parser.parseExpression s flags of
+    POk s e -> unP (runPV . unECP $ e) s
+    PFailed ps -> PFailed ps
+#elif defined (GHCLIB_API_810)
 parseExpression s flags =
   case parse Parser.parseExpression s flags of
     POk s e -> unP (runECP_P e) s
diff --git a/src/Language/Haskell/GhclibParserEx/GHC/Utils/Outputable.hs b/src/Language/Haskell/GhclibParserEx/GHC/Utils/Outputable.hs
--- a/src/Language/Haskell/GhclibParserEx/GHC/Utils/Outputable.hs
+++ b/src/Language/Haskell/GhclibParserEx/GHC/Utils/Outputable.hs
@@ -10,9 +10,15 @@
 
 #if defined (GHCLIB_API_811)
 import GHC.Utils.Outputable
+import GHC.Driver.Ppr
 #else
 import Outputable
 #endif
 
 unsafePrettyPrint :: Outputable a => a -> String
-unsafePrettyPrint = showSDocUnsafe . ppr
+unsafePrettyPrint =
+#if defined(GHCLIB_API_811)
+  showPprUnsafe . ppr
+#else
+  showSDocUnsafe . ppr
+#endif
diff --git a/test/Test.hs b/test/Test.hs
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -48,6 +48,7 @@
 import GHC.Driver.Session
 import GHC.Parser.Lexer
 import GHC.Utils.Outputable
+import GHC.Driver.Ppr
 import GHC.Utils.Error
 import GHC.Types.Name.Reader
 import GHC.Types.Name.Occurrence
@@ -63,6 +64,11 @@
 import GHC.LanguageExtensions.Type
 #if defined (GHCLIB_API_808)
 import Bag
+#endif
+
+#if defined(GHCLIB_API_811)
+showSDocUnsafe :: SDoc -> String
+showSDocUnsafe = showPprUnsafe
 #endif
 
 main :: IO ()
