diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Changelog for compdoc-dhall-decoder
 
+## v0.3.0.0
+
+* Update to compdoc-0.3.0.0
+
 ## v0.1.0.0
 
 * Working compdoc decoder for dhall.
diff --git a/compdoc-dhall-decoder.cabal b/compdoc-dhall-decoder.cabal
--- a/compdoc-dhall-decoder.cabal
+++ b/compdoc-dhall-decoder.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.2.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
 
 name:           compdoc-dhall-decoder
-version:        0.2.0.0
+version:        0.3.0.0
 synopsis:       Allows you to write FromDhall instances for Compdoc
 category:       dhall pandoc
 author:         Daniel Firth
@@ -31,9 +31,9 @@
       src
   build-depends:
       base >=4.7 && <5
-    , compdoc >=0.2.0.0
+    , compdoc >=0.3.0.0
     , composite-aeson
-    , composite-base
+    , composite-base >=0.7.4.0
     , dhall
     , either
     , pandoc
diff --git a/src/Text/Compdoc/Dhall.hs b/src/Text/Compdoc/Dhall.hs
--- a/src/Text/Compdoc/Dhall.hs
+++ b/src/Text/Compdoc/Dhall.hs
@@ -1,32 +1,33 @@
 {-# LANGUAGE DataKinds #-}
 {-# LANGUAGE TypeOperators #-}
+
 module Text.Compdoc.Dhall where
 
 import Composite.Aeson
 import Composite.Record
 import Data.Either.Validation
+import Data.Text as T
+import Data.Typeable
 import Data.Void
 import qualified Dhall as D
-import Data.Text as T
 import Text.Compdoc
-import Data.Typeable
 import Text.Pandoc
 
 -- | Decode a Compdoc value.
-compdocDecoder :: WriterOptions -> JsonFormat Void (Record a) -> D.InputNormalizer -> D.Decoder (Record (FContent ': a))
+compdocDecoder :: WriterOptions -> JsonFormat Void (Record a) -> D.InputNormalizer -> D.Decoder (Compdoc a)
 compdocDecoder wopts f opts =
-      D.Decoder
-            { D.extract = extractDoc
-            , D.expected = expectedDoc
-            }
-      where
-        docDecoder :: D.Decoder Text
-        docDecoder = D.autoWith opts
+  D.Decoder
+    { D.extract = extractDoc,
+      D.expected = expectedDoc
+    }
+  where
+    docDecoder :: D.Decoder Text
+    docDecoder = D.autoWith opts
 
-        extractDoc expression =
-          case D.extract docDecoder expression of
-              Success x -> case readMarkdown' def { readerExtensions = pandocExtensions } wopts f x of
-                Left exception   -> D.extractError (T.pack $ show exception)
-                Right path       -> Success path
-              Failure e        -> Failure e
-        expectedDoc = D.expected docDecoder
+    extractDoc expression =
+      case D.extract docDecoder expression of
+        Success x -> case readMarkdown' def {readerExtensions = pandocExtensions} wopts f x of
+          Left exception -> D.extractError (T.pack $ show exception)
+          Right l -> Success l
+        Failure e -> Failure e
+    expectedDoc = D.expected docDecoder
