diff --git a/Data/Aeson/Quick.hs b/Data/Aeson/Quick.hs
--- a/Data/Aeson/Quick.hs
+++ b/Data/Aeson/Quick.hs
@@ -31,6 +31,7 @@
 
 import GHC.Generics (Generic)
 
+import Debug.Trace
 
 data Structure = Obj [(T.Text, Bool, Structure)]
                | Arr Structure
@@ -143,16 +144,16 @@
 build :: ToJSON a => Structure -> Value -> a -> Value
 build structure val = go structure val . toJSON
   where
-    go (Val)      _          r         = r
-    go (Arr s)    (Array v)  (Array r) = Array $ V.zipWith (go s) v r 
-    go (Arr s)    Null       (Array r) = Array $ V.map (go s Null) r
-    go (Arr s)    Null       r         = toJSON [go s Null r]
-    go (Obj [ks]) (Object v) r         = Object $ update v ks r
-    go (Obj keys) Null       r         = go (Obj keys) (Object mempty) r
-    go (Obj ks)   (Object v) (Array r) = Object $
+    go (Val)      _          r         = traceShow "a" $ r
+    go (Arr s)    (Array v)  (Array r) = traceShow "b" $ Array $ V.zipWith (go s) v r 
+    go (Arr s)    Null       (Array r) = traceShow "c" $ Array $ V.map (go s Null) r
+    go (Arr s)    Null       r         = traceShow "d" $ toJSON [go s Null r]
+    go (Obj [ks]) (Object v) r         = traceShow "e" $ Object $ update v ks r
+    go (Obj keys) Null       r         = traceShow "f" $ go (Obj keys) (Object mempty) r
+    go (Obj ks)   (Object v) (Array r) = traceShow "g" $ Object $
       let maps = zip ks (V.toList r)
        in foldl (\v' (s,r') -> update v' s r') v maps
-    go (Obj keys) (Object v) r         = r
+    go (Obj keys) (Object v) r         = traceShow "h" $ r
     go a b c = error $ show (a,b,c) -- TODO
     update v (k,_,s) r =
       let startVal = go s (H.lookupDefault Null k v) r
diff --git a/aeson-quick.cabal b/aeson-quick.cabal
--- a/aeson-quick.cabal
+++ b/aeson-quick.cabal
@@ -1,5 +1,5 @@
 Name:              aeson-quick
-Version:           0.1.1.2
+Version:           0.1.2.0
 Build-Type:        Simple
 Cabal-Version:     >= 1.16
 License:           BSD3
@@ -18,13 +18,13 @@
 Library
   Exposed-modules:    Data.Aeson.Quick
   hs-source-dirs:     .
-  Build-Depends:      base                  >= 4      && <= 4.9.0.0
-                    , aeson                 >= 0.8    && <  0.12
-                    , attoparsec            >= 0.12   && <  0.14
-                    , deepseq               >= 1.3    && <  1.5
-                    , text                  >= 1.2    && <  1.3
-                    , unordered-containers  >= 0.2.5  && <  0.3
-                    , vector                >= 0.10   && <  0.12
+  Build-Depends:      base                  >= 4      && <= 5
+                    , aeson
+                    , attoparsec
+                    , deepseq
+                    , text
+                    , unordered-containers
+                    , vector
   if impl(ghc < 7.5)
     Build-Depends:    ghc-prim              >= 0.2
   default-language: Haskell2010
@@ -34,14 +34,14 @@
   hs-source-dirs:     test
   main-is:            Test.hs
   build-depends:      aeson-quick
-                    , base                  >= 4      && <= 4.9.0.0
-                    , bytestring            >= 0.10.5 && <  0.11
-                    , aeson                 >= 0.8    && <  0.12
-                    , microlens             >= 0.4    && <  0.5
-                    , text                  >= 1.2    && <  1.3
-                    , attoparsec            >= 0.12   && <  0.14
-                    , tasty                 >= 0.10   && <  0.12
-                    , tasty-hunit           >= 0.9    && <  0.10
+                    , base                  >= 4      && <= 5
+                    , bytestring
+                    , aeson
+                    , microlens
+                    , text
+                    , attoparsec
+                    , tasty
+                    , tasty-hunit
   default-language: Haskell2010
 
 benchmark benchmark
@@ -50,11 +50,11 @@
   hs-source-dirs:     test
   ghc-options:        -Wall -rtsopts -threaded -with-rtsopts=-N
   build-depends:      aeson-quick
-                    , base                  >= 4      && <= 4.9.0.0
-                    , aeson                 >= 0.8    && <  0.12
-                    , bytestring            >= 0.10   && <  0.11
-                    , criterion             >= 0.1    && <  1.2
-                    , text                  >= 1.2    && <  1.3
+                    , base                  >= 4      && <= 5
+                    , aeson
+                    , bytestring
+                    , criterion
+                    , text
   default-language: Haskell2010
 
 
