diff --git a/hw-json.cabal b/hw-json.cabal
--- a/hw-json.cabal
+++ b/hw-json.cabal
@@ -1,5 +1,5 @@
 name:                   hw-json
-version:                0.2.0.2
+version:                0.2.0.3
 synopsis:               Conduits for tokenizing streams.
 description:            Please see README.md
 homepage:               http://github.com/haskell-works/hw-json#readme
@@ -66,6 +66,7 @@
                       , HaskellWorks.Data.Json.Value.Internal
   build-depends:        base                          >= 4          && < 5
                       , array
+                      , ansi-wl-pprint
                       , attoparsec
                       , bytestring
                       , conduit
diff --git a/src/HaskellWorks/Data/Json/PartialValue.hs b/src/HaskellWorks/Data/Json/PartialValue.hs
--- a/src/HaskellWorks/Data/Json/PartialValue.hs
+++ b/src/HaskellWorks/Data/Json/PartialValue.hs
@@ -15,6 +15,7 @@
 import qualified Data.ByteString                              as BS
 import           HaskellWorks.Data.Json.Succinct.PartialIndex
 import           HaskellWorks.Data.Json.Value.Internal
+import           Text.PrettyPrint.ANSI.Leijen
 
 data JsonPartialValue
   = JsonPartialString String
@@ -56,3 +57,29 @@
             ABC.Fail    {}  -> JsonPartialError ("Invalid field: '" ++ show (BS.take 20 bs) ++ "...'")
             ABC.Partial _   -> JsonPartialError "Unexpected end of field"
             ABC.Done    _ s -> JsonPartialString s
+
+data JsonPartialField = JsonPartialField String JsonPartialValue
+
+toJsonPartialField :: (String, JsonPartialValue) -> JsonPartialField
+toJsonPartialField (k, v) = JsonPartialField k v
+
+instance Pretty JsonPartialField where
+  pretty (JsonPartialField k v) = text (show k) <> text ": " <> pretty v
+
+hEncloseSep :: Doc -> Doc -> Doc -> [Doc] -> Doc
+hEncloseSep l r s ds
+    = case ds of
+        []  -> l <> r
+        [d] -> l <> d <> r
+        _   -> hcat (zipWith (<>) (l : repeat s) ds) <> r
+
+instance Pretty JsonPartialValue where
+  pretty mjpv = case mjpv of
+    JsonPartialString s   -> dullgreen  (text (show s))
+    JsonPartialNumber n   -> cyan       (text (show n))
+    JsonPartialObject []  -> text "{}"
+    JsonPartialObject kvs -> hEncloseSep (text "{{") (text "}}") (text ",") ((pretty . toJsonPartialField) `map` kvs)
+    JsonPartialArray vs   -> hEncloseSep (text "[") (text "]") (text ",") (pretty `map` vs)
+    JsonPartialBool w     -> red (text (show w))
+    JsonPartialNull       -> text "null"
+    JsonPartialError s    -> text "<error " <> text s <> text ">"
