diff --git a/rtcm.cabal b/rtcm.cabal
--- a/rtcm.cabal
+++ b/rtcm.cabal
@@ -1,104 +1,111 @@
-name:                  rtcm
-version:               0.2.15
-synopsis:              Haskell bindings for RTCM.
-homepage:              http://github.com/swift-nav/librtcm
-license:               BSD3
-author:                Mark Fine <mark@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.22
+cabal-version: >=1.22
+name: rtcm
+version: 0.2.16
+license: BSD3
+copyright: Copyright (C) 2015-2017 Swift Navigation, Inc.
+maintainer: Swift Navigation <dev@swift-nav.com>
+author: Mark Fine <mark@swift-nav.com>
+homepage: http://github.com/swift-nav/librtcm
+synopsis: Haskell bindings for RTCM.
 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
+build-type: Simple
 
 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.Extras
-                     , Data.RTCM3.TH
-  ghc-options:         -Wall
-  build-depends:       aeson
-                     , array
-                     , base >= 4.8 && < 5
-                     , base64-bytestring
-                     , basic-prelude
-                     , binary
-                     , binary-bits
-                     , bytestring
-                     , lens
-                     , lens-aeson
-                     , 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
+    hs-source-dirs: src
+    other-modules:
+        Data.RTCM3.Extras
+        Data.RTCM3.TH
+    default-language: Haskell2010
+    ghc-options: -Wall
+    build-depends:
+        aeson >=1.2.4.0,
+        array >=0.5.2.0,
+        base >=4.8 && <5,
+        base64-bytestring >=1.0.0.1,
+        basic-prelude >=0.7.0,
+        binary >=0.8.5.1,
+        binary-bits >=0.5,
+        bytestring >=0.10.8.2,
+        lens >=4.15.4,
+        lens-aeson >=1.0.2,
+        template-haskell >=2.12.0.0,
+        text >=1.2.2.2,
+        word24 >=2.0.1
 
 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-extra
-                     , rtcm
-  default-language:    Haskell2010
+    main-is: rtcm32json.hs
+    hs-source-dirs: main
+    default-language: Haskell2010
+    ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall
+    build-depends:
+        aeson >=1.2.4.0,
+        base >=4.10.1.0,
+        basic-prelude >=0.7.0,
+        binary-conduit >=1.2.5,
+        bytestring >=0.10.8.2,
+        conduit >=1.2.13.1,
+        conduit-extra >=1.2.3.2,
+        rtcm -any
 
 executable json2rtcm3
-  hs-source-dirs:      main
-  main-is:             json2rtcm3.hs
-  ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
-  build-depends:       aeson
-                     , base
-                     , basic-prelude
-                     , binary-conduit
-                     , conduit
-                     , conduit-extra
-                     , rtcm
-  default-language:    Haskell2010
+    main-is: json2rtcm3.hs
+    hs-source-dirs: main
+    default-language: Haskell2010
+    ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall
+    build-depends:
+        aeson >=1.2.4.0,
+        base >=4.10.1.0,
+        basic-prelude >=0.7.0,
+        binary-conduit >=1.2.5,
+        conduit >=1.2.13.1,
+        conduit-extra >=1.2.3.2,
+        rtcm -any
 
 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
-                     , text
-                     , word24
-  ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
-  default-language:    Haskell2010
+    type: exitcode-stdio-1.0
+    main-is: Test.hs
+    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
+    default-language: Haskell2010
+    ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall
+    build-depends:
+        base >=4.10.1.0,
+        basic-prelude >=0.7.0,
+        binary >=0.8.5.1,
+        binary-bits >=0.5,
+        bytestring >=0.10.8.2,
+        lens >=4.15.4,
+        random >=1.1,
+        rtcm -any,
+        tasty >=0.11.3,
+        tasty-hunit >=0.9.2,
+        tasty-quickcheck >=0.9.1,
+        text >=1.2.2.2,
+        word24 >=2.0.1
