diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,8 @@
+# 0.1.0.2
+
+- Use `dhall ==0.20.*`
+- Support servant-0.16
+
+# 0.1.0.1
+
+- Use `dhall >=1.15.1 && <0.16`
diff --git a/servant-dhall.cabal b/servant-dhall.cabal
--- a/servant-dhall.cabal
+++ b/servant-dhall.cabal
@@ -1,55 +1,55 @@
-name:                servant-dhall
-version:             0.1.0.1
-synopsis:            Servant Dhall content-type
+cabal-version:      >=1.10
+name:               servant-dhall
+version:            0.1.0.2
+synopsis:           Servant Dhall content-type
 description:
   Servant Dhall bindings.
-  . 
+  .
   Provides @MimeRender@ and @MimeUnrender@ instances.
   So you can accept and return Dhall expressions.
   .
   /Note:/ Reading (and evaluating) Dhall expressions from untrusted sources is a security risk.
-homepage:            http://haskell-servant.readthedocs.org/
-license:             BSD3
-license-file:        LICENSE
-author:              Servant Contributors
-maintainer:          haskell-servant-maintainers@googlegroups.com
-copyright:           2018 Servant Contributors
-category:            Web, Servant, Dhall
-build-type:          Simple
-cabal-version:       >=1.10
-bug-reports:         http://github.com/haskell-servant/servant-dhall/issues
-tested-with:
-  GHC==8.0.2,
-  GHC==8.2.2,
-  GHC==8.4.3
+
+homepage:           http://haskell-servant.readthedocs.org/
+license:            BSD3
+license-file:       LICENSE
+author:             Servant Contributors
+maintainer:         haskell-servant-maintainers@googlegroups.com
+copyright:          2018-2019 Servant Contributors
+category:           Web, Servant, Dhall
+build-type:         Simple
+bug-reports:        http://github.com/haskell-servant/servant-dhall/issues
+tested-with:        GHC ==8.6.3 || ==8.4.3 || ==8.0.2 || ==8.2.2
 extra-source-files:
   README.md
+  CHANGELOG.md
 
 source-repository head
-  type: git
+  type:     git
   location: http://github.com/haskell-servant/servant-dhall.git
 
 library
-  exposed-modules:     Servant.Dhall
-  build-depends:       base          >=4.9      && <4.12
-                     , base-compat   >=0.10.1   && <0.11
-                     , bytestring    >=0.10.4.0 && <0.11
-                     , dhall         >=1.15.1   && <1.16
-                     , megaparsec    >=6.5.0    && <6.6
-                     , prettyprinter >=1.2.0.1  && <1.3
-                     , servant       >=0.13     && <0.15
-                     , text          >=1.2.3.0  && <1.3
-                     , http-media    >=0.7.1.2  && <0.8
-  hs-source-dirs:      src
-  default-language:    Haskell2010
-  ghc-options: -Wall
+  exposed-modules:  Servant.Dhall
+  build-depends:
+      base           >=4.9      && <4.13
+    , base-compat    >=0.10.1   && <0.11
+    , bytestring     >=0.10.4.0 && <0.11
+    , dhall          >=1.20.1   && <1.21
+    , http-media     >=0.7.1.2  && <0.8
+    , megaparsec     >=7.0.4    && <7.1
+    , prettyprinter  >=1.2.0.1  && <1.3
+    , servant        >=0.13     && <0.17
+    , text           >=1.2.3.0  && <1.3
 
+  hs-source-dirs:   src
+  default-language: Haskell2010
+  ghc-options:      -Wall
+
 test-suite example
-  type: exitcode-stdio-1.0
-  main-is: Main.hs
-  hs-source-dirs:
-    example
-  ghc-options: -Wall
+  type:             exitcode-stdio-1.0
+  main-is:          Main.hs
+  hs-source-dirs:   example
+  ghc-options:      -Wall
   build-depends:
       base
     , base-compat
@@ -58,7 +58,8 @@
     , http-media
     , servant
     , servant-dhall
-    , servant-server >=0.12     && <0.15
-    , wai            >=3.0.3.0  && <3.3
-    , warp           >=3.0.13.1 && <3.3
+    , servant-server  >=0.12     && <0.17
+    , wai             >=3.0.3.0  && <3.3
+    , warp            >=3.0.13.1 && <3.3
+
   default-language: Haskell2010
diff --git a/src/Servant/Dhall.hs b/src/Servant/Dhall.hs
--- a/src/Servant/Dhall.hs
+++ b/src/Servant/Dhall.hs
@@ -90,11 +90,11 @@
         unless (Dhall.Core.judgmentallyEqual tyExpr $ expected ty) $
             Left $ "Expected and actual types don't match : "
                 ++ ppExpr (expected ty) ++ " /= " ++ ppExpr tyExpr
-        case extract ty (Dhall.Core.normalizeWith (const Nothing) expr1) of
+        case extract ty (Dhall.Core.normalizeWith (const (pure Nothing)) expr1) of
             Just x  -> Right x
             Nothing -> Left "Invalid type"
       where
-        showParseError = MP.parseErrorPretty . unwrap
+        showParseError = MP.errorBundlePretty . unwrap
         showTypeError e = "Type error: " ++ ppExpr e
 
         te = TL.toStrict $
