diff --git a/main/rtcm32json.hs b/main/rtcm32json.hs
--- a/main/rtcm32json.hs
+++ b/main/rtcm32json.hs
@@ -15,8 +15,6 @@
 import           BasicPrelude
 import           Control.Monad.Trans.Resource
 import           Data.Aeson
-import           Data.Aeson.Encode
-import           Data.ByteString.Builder
 import qualified Data.ByteString.Lazy              as BL
 import           Data.Conduit
 import           Data.Conduit.Binary
@@ -28,7 +26,7 @@
 
 -- | Encode a RTCM3Msg to a line of JSON.
 encodeLine :: RTCM3Msg -> ByteString
-encodeLine v = BL.toStrict $ toLazyByteString $ encodeToBuilder (toJSON v) <> "\n"
+encodeLine v = BL.toStrict $ encode v <> "\n"
 
 main :: IO ()
 main =
diff --git a/rtcm.cabal b/rtcm.cabal
--- a/rtcm.cabal
+++ b/rtcm.cabal
@@ -1,93 +1,98 @@
-name:                  rtcm
-version:               0.1.11
-synopsis:              RTCM Library.
-description:           Haskell bindings for RTCM.
-homepage:              http://github.com/swift-nav/librtcm
-license:               BSD3
-author:                Mark Fine <mark@swift-nav.com>, Joshua Gross <josh@swift-nav.com>
-maintainer:            Swift Navigation <dev@swift-nav.com>
-copyright:             Copyright (C) 2015-2017 Swift Navigation, Inc.
-category:              Network
-build-type:            Simple
-cabal-version:         >= 1.10
+name: rtcm
+version: 0.1.12
+cabal-version: >=1.10
+build-type: Simple
+license: BSD3
+copyright: Copyright (C) 2015-2017 Swift Navigation, Inc.
+maintainer: Swift Navigation <dev@swift-nav.com>
+homepage: http://github.com/swift-nav/librtcm
+synopsis: RTCM Library.
 description:
-  Haskell bindings for Radio Technical Commission For Maritime
-  Services (RTCM) standard, supporting GPS, GLONASS, Galileo and other
-  satellite-based position systems operation with one reference
-  station or a network.
+    Haskell bindings for Radio Technical Commission For Maritime
+    Services (RTCM) standard, supporting GPS, GLONASS, Galileo and other
+    satellite-based position systems operation with one reference
+    station or a network.
+category: Network
+author: Mark Fine <mark@swift-nav.com>, Joshua Gross <josh@swift-nav.com>
 
 source-repository head
-  type:                git
-  location:            https://github.com/swift-nav/librtcm
+    type: git
+    location: https://github.com/swift-nav/librtcm
 
 library
-  hs-source-dirs:      src
-  exposed-modules:     Data.CRC24Q
-                     , Data.RTCM3
-                     , Data.RTCM3.Antennas
-                     , Data.RTCM3.Ephemerides
-                     , Data.RTCM3.Internal
-                     , Data.RTCM3.Observations
-                     , Data.RTCM3.SSR
-                     , Data.RTCM3.System
-                     , Data.RTCM3.Types
-  other-modules:       Data.RTCM3.Aeson
-                     , Data.RTCM3.Extras
-                     , Data.RTCM3.TH
-  ghc-options:         -Wall
-  build-depends:       aeson
-                     , array
-                     , base >= 4.7 && < 5
-                     , base64-bytestring
-                     , basic-prelude
-                     , binary
-                     , binary-bits
-                     , bytestring
-                     , lens
-                     , template-haskell
-                     , text
-                     , word24
-  default-language:    Haskell2010
+    exposed-modules:
+        Data.CRC24Q
+        Data.RTCM3
+        Data.RTCM3.Antennas
+        Data.RTCM3.Ephemerides
+        Data.RTCM3.Internal
+        Data.RTCM3.Observations
+        Data.RTCM3.SSR
+        Data.RTCM3.System
+        Data.RTCM3.Types
+    build-depends:
+        aeson >=0.11.3.0,
+        array >=0.5.1.0,
+        base >=4.8 && <5,
+        base64-bytestring >=1.0.0.1,
+        basic-prelude >=0.5.2,
+        binary >=0.7.5.0,
+        binary-bits >=0.5,
+        bytestring >=0.10.6.0,
+        lens >=4.13,
+        template-haskell >=2.10.0.0,
+        text >=1.2.2.2,
+        word24 >=2.0.1
+    default-language: Haskell2010
+    hs-source-dirs: src
+    other-modules:
+        Data.RTCM3.Aeson
+        Data.RTCM3.Extras
+        Data.RTCM3.TH
+    ghc-options: -Wall
 
 executable rtcm32json
-  hs-source-dirs:      main
-  main-is:             rtcm32json.hs
-  ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
-  build-depends:       aeson
-                     , base
-                     , basic-prelude
-                     , binary-conduit
-                     , bytestring
-                     , conduit
-                     , conduit-combinators
-                     , conduit-extra
-                     , resourcet
-                     , rtcm
-  default-language:    Haskell2010
+    main-is: rtcm32json.hs
+    build-depends:
+        aeson >=0.11.3.0,
+        base >=4.8.2.0,
+        basic-prelude >=0.5.2,
+        binary-conduit >=1.2.4.1,
+        bytestring >=0.10.6.0,
+        conduit >=1.2.10,
+        conduit-combinators >=1.0.8.3,
+        conduit-extra >=1.1.16,
+        resourcet >=1.1.9,
+        rtcm >=0.1.12
+    default-language: Haskell2010
+    hs-source-dirs: main
+    ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall
 
 test-suite test
-  type:                exitcode-stdio-1.0
-  hs-source-dirs:      test
-  main-is:             Test.hs
-  other-modules:       Test.Data.CRC24Q
-                     , Test.Data.RTCM3.Antennas
-                     , Test.Data.RTCM3.Ephemerides
-                     , Test.Data.RTCM3.Extras
-                     , Test.Data.RTCM3.Observations
-                     , Test.Data.RTCM3.SSR
-                     , Test.Data.RTCM3.System
-                     , Test.Data.RTCM3.Test
-  build-depends:       base
-                     , basic-prelude
-                     , binary
-                     , binary-bits
-                     , bytestring
-                     , lens
-                     , random
-                     , rtcm
-                     , tasty
-                     , tasty-hunit
-                     , tasty-quickcheck
-                     , word24
-  ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
-  default-language:    Haskell2010
+    type: exitcode-stdio-1.0
+    main-is: Test.hs
+    build-depends:
+        base >=4.8.2.0,
+        basic-prelude >=0.5.2,
+        binary >=0.7.5.0,
+        binary-bits >=0.5,
+        bytestring >=0.10.6.0,
+        lens >=4.13,
+        random >=1.1,
+        rtcm >=0.1.12,
+        tasty >=0.11.2.1,
+        tasty-hunit >=0.9.2,
+        tasty-quickcheck >=0.8.4,
+        word24 >=2.0.1
+    default-language: Haskell2010
+    hs-source-dirs: test
+    other-modules:
+        Test.Data.CRC24Q
+        Test.Data.RTCM3.Antennas
+        Test.Data.RTCM3.Ephemerides
+        Test.Data.RTCM3.Extras
+        Test.Data.RTCM3.Observations
+        Test.Data.RTCM3.SSR
+        Test.Data.RTCM3.System
+        Test.Data.RTCM3.Test
+    ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall
diff --git a/test/Test/Data/RTCM3/Extras.hs b/test/Test/Data/RTCM3/Extras.hs
--- a/test/Test/Data/RTCM3/Extras.hs
+++ b/test/Test/Data/RTCM3/Extras.hs
@@ -18,8 +18,8 @@
 import           Data.Binary
 import qualified Data.Binary.Bits.Get  as B
 import qualified Data.Binary.Bits.Put  as B
-import           Data.Binary.Get
-import           Data.Binary.Put
+import qualified Data.Binary.Get       as G
+import qualified Data.Binary.Put       as P
 import           Data.Bits
 import           Data.ByteString.Lazy
 import           Data.Int
@@ -59,10 +59,10 @@
   shrink    = shrinkIntegral
 
 decodeBits :: B.BitGet a -> ByteString -> a
-decodeBits = runGet . B.runBitGet
+decodeBits = G.runGet . B.runBitGet
 
 encodeBits :: B.BitPut () -> ByteString
-encodeBits = runPut . B.runBitPut
+encodeBits = P.runPut . B.runBitPut
 
 testInt8 :: TestTree
 testInt8 =
