diff --git a/hw-dsv.cabal b/hw-dsv.cabal
--- a/hw-dsv.cabal
+++ b/hw-dsv.cabal
@@ -1,23 +1,23 @@
-cabal-version:  2.2
-name:           hw-dsv
-version:        0.3.5
-synopsis:       Unbelievably fast streaming DSV file parser
-description:    Please see the README on Github at <https://github.com/haskell-works/hw-dsv#readme>
-category:       Text, CSV, SIMD, Succinct Data Structures, Data Structures
-homepage:       https://github.com/haskell-works/hw-dsv#readme
-bug-reports:    https://github.com/haskell-works/hw-dsv/issues
-author:         John Ky
-maintainer:     newhoggy@gmail.com
-copyright:      2018 John Ky
-license:        BSD-3-Clause
-license-file:   LICENSE
-tested-with:    GHC == 8.6.4, GHC == 8.4.4, GHC == 8.2.2, GHC == 8.0.2
-build-type:     Simple
-extra-source-files:
-    README.md
-    ChangeLog.md
-    data/bench/data-0001000.csv
+cabal-version: 2.2
 
+name:                   hw-dsv
+version:                0.3.6
+synopsis:               Unbelievably fast streaming DSV file parser
+description:            Please see the README on Github at <https://github.com/haskell-works/hw-dsv#readme>
+category:               Text, CSV, SIMD, Succinct Data Structures, Data Structures
+homepage:               https://github.com/haskell-works/hw-dsv#readme
+bug-reports:            https://github.com/haskell-works/hw-dsv/issues
+author:                 John Ky
+maintainer:             newhoggy@gmail.com
+copyright:              2018-2019 John Ky
+license:                BSD-3-Clause
+license-file:           LICENSE
+tested-with:            GHC == 8.8.1, GHC == 8.6.5, GHC == 8.4.4, GHC == 8.2.2
+build-type:             Simple
+extra-source-files:     README.md
+                        ChangeLog.md
+                        data/bench/data-0001000.csv
+
 source-repository head
   type: git
   location: https://github.com/haskell-works/hw-dsv
@@ -45,9 +45,9 @@
 common criterion            { build-depends: criterion            >= 1.4.1.0    && < 1.6    }
 common deepseq              { build-depends: deepseq              >= 1.4        && < 1.5    }
 common directory            { build-depends: directory            >= 1.2.2      && < 1.4    }
-common generic-lens         { build-depends: generic-lens         >= 1.0.0.0    && < 1.2    }
-common ghc-prim             { build-depends: ghc-prim                                       }
-common hedgehog             { build-depends: hedgehog             >= 0.5        && < 0.7    }
+common generic-lens         { build-depends: generic-lens         >= 1.2.0.1    && < 1.3    }
+common ghc-prim             { build-depends: ghc-prim             >= 0.4        && < 0.6    }
+common hedgehog             { build-depends: hedgehog             >= 0.5        && < 1.1    }
 common hspec                { build-depends: hspec                >= 2.4        && < 3      }
 common hw-bits              { build-depends: hw-bits              >= 0.7.0.2    && < 0.8    }
 common hw-hspec-hedgehog    { build-depends: hw-hspec-hedgehog    >= 0.1.0.4    && < 0.2    }
@@ -57,7 +57,7 @@
 common hw-simd              { build-depends: hw-simd              >= 0.1.1.3    && < 0.2    }
 common lens                 { build-depends: lens                 >= 4.15       && < 5      }
 common mmap                 { build-depends: mmap                 >= 0.5.9      && < 0.6    }
-common optparse-applicative { build-depends: optparse-applicative >= 0.13       && < 0.15   }
+common optparse-applicative { build-depends: optparse-applicative >= 0.13       && < 0.16   }
 common resourcet            { build-depends: resourcet            >= 1.1        && < 1.3    }
 common text                 { build-depends: text                 >= 1.2.2      && < 2.0    }
 common vector               { build-depends: vector               >= 0.12.0.1   && < 0.13   }
@@ -66,166 +66,164 @@
 common semigroups           {  if (!impl(ghc >= 8.0.1)) { build-depends: semigroups   >= 0.8.4  && <  0.19  } }
 common transformers         {  if (!impl(ghc >= 8.0.1)) { build-depends: transformers >= 0.4    && <  0.6   } }
 
-common common
-  default-language:   Haskell2010
-  ghc-options:        -O2 -Wall
+common config
+  default-language:     Haskell2010
+  ghc-options:          -O2 -Wall
   if flag(sse42)
-    ghc-options: -msse4.2
-    cc-options: -msse4.2
+    ghc-options:        -msse4.2
+    cc-options:         -msse4.2
   if flag(bmi2)
-    cc-options: -mbmi2 -DBMI2_ENABLED
+    cc-options:         -mbmi2 -DBMI2_ENABLED
   if flag(avx2)
-    cc-options: -mavx2 -DAVX2_ENABLED
+    cc-options:         -mavx2 -DAVX2_ENABLED
   if (impl(ghc >=8.0.1))
-    ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
+    ghc-options:        -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
   if (flag(avx2)) && (impl(ghc >=8.4.1))
-    ghc-options: -mbmi2 -msse4.2
-    cpp-options: -DBMI2_ENABLED -DAVX2_ENABLED
+    ghc-options:        -mbmi2 -msse4.2
+    cpp-options:        -DBMI2_ENABLED -DAVX2_ENABLED
   if (flag(bmi2)) && (impl(ghc >=8.4.1))
-    ghc-options: -mbmi2 -msse4.2
+    ghc-options:        -mbmi2 -msse4.2
 
 library
-  import:   base, common
-          , bits-extra
-          , bytestring
-          , deepseq
-          , ghc-prim
-          , hw-bits
-          , hw-prim
-          , hw-rankselect
-          , hw-rankselect-base
-          , hw-simd
-          , semigroups
-          , transformers
-          , vector
+  import:               base, config
+                      , bits-extra
+                      , bytestring
+                      , deepseq
+                      , ghc-prim
+                      , hw-bits
+                      , hw-prim
+                      , hw-rankselect
+                      , hw-rankselect-base
+                      , hw-simd
+                      , semigroups
+                      , transformers
+                      , vector
   exposed-modules:
-      HaskellWorks.Data.Dsv.Internal.Bits
-      HaskellWorks.Data.Dsv.Internal.Broadword
-      HaskellWorks.Data.Dsv.Internal.Char
-      HaskellWorks.Data.Dsv.Internal.Char.Word64
-      HaskellWorks.Data.Dsv.Internal.Vector
-      HaskellWorks.Data.Dsv.Lazy.Cursor
-      HaskellWorks.Data.Dsv.Lazy.Cursor.Internal
-      HaskellWorks.Data.Dsv.Lazy.Cursor.Type
-      HaskellWorks.Data.Dsv.Strict.Cursor
-      HaskellWorks.Data.Dsv.Strict.Cursor.Internal
-      HaskellWorks.Data.Dsv.Strict.Cursor.Internal.Reference
-      HaskellWorks.Data.Dsv.Strict.Cursor.Type
-  other-modules:    Paths_hw_dsv
-  autogen-modules:  Paths_hw_dsv
-  hs-source-dirs:   src
+                        HaskellWorks.Data.Dsv.Internal.Bits
+                        HaskellWorks.Data.Dsv.Internal.Broadword
+                        HaskellWorks.Data.Dsv.Internal.Char
+                        HaskellWorks.Data.Dsv.Internal.Char.Word64
+                        HaskellWorks.Data.Dsv.Internal.Vector
+                        HaskellWorks.Data.Dsv.Lazy.Cursor
+                        HaskellWorks.Data.Dsv.Lazy.Cursor.Internal
+                        HaskellWorks.Data.Dsv.Lazy.Cursor.Type
+                        HaskellWorks.Data.Dsv.Strict.Cursor
+                        HaskellWorks.Data.Dsv.Strict.Cursor.Internal
+                        HaskellWorks.Data.Dsv.Strict.Cursor.Internal.Reference
+                        HaskellWorks.Data.Dsv.Strict.Cursor.Type
+  other-modules:        Paths_hw_dsv
+  autogen-modules:      Paths_hw_dsv
+  hs-source-dirs:       src
 
 executable hw-dsv
-  import:   base, common
-          , bits-extra
-          , bytestring
-          , deepseq
-          , generic-lens
-          , ghc-prim
-          , hedgehog
-          , hw-bits
-          , hw-prim
-          , hw-rankselect
-          , hw-rankselect-base
-          , hw-simd
-          , lens
-          , optparse-applicative
-          , resourcet
-          , semigroups
-          , transformers
-          , vector
-  main-is:          Main.hs
-  other-modules:
-      App.Char
-      App.Commands
-      App.Commands.CreateIndex
-      App.Commands.Generate
-      App.Commands.IndexWord8s
-      App.Commands.Options.Type
-      App.Commands.QueryLazy
-      App.Commands.QueryStrict
-      App.Gen
-      App.IO
-      Paths_hw_dsv
-  autogen-modules:  Paths_hw_dsv
-  hs-source-dirs:   app
-  ghc-options:      -threaded -rtsopts -with-rtsopts=-N
-  build-depends:    hw-dsv
+  import:               base, config
+                      , bits-extra
+                      , bytestring
+                      , deepseq
+                      , generic-lens
+                      , ghc-prim
+                      , hedgehog
+                      , hw-bits
+                      , hw-prim
+                      , hw-rankselect
+                      , hw-rankselect-base
+                      , hw-simd
+                      , lens
+                      , optparse-applicative
+                      , resourcet
+                      , semigroups
+                      , transformers
+                      , vector
+  main-is:              Main.hs
+  other-modules:        App.Char
+                        App.Commands
+                        App.Commands.CreateIndex
+                        App.Commands.Generate
+                        App.Commands.IndexWord8s
+                        App.Commands.Options.Type
+                        App.Commands.QueryLazy
+                        App.Commands.QueryStrict
+                        App.Gen
+                        App.IO
+                        Paths_hw_dsv
+  autogen-modules:      Paths_hw_dsv
+  hs-source-dirs:       app
+  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
+  build-depends:        hw-dsv
 
 test-suite hw-dsv-space
-  import:   base, common
-          , bits-extra
-          , bytestring
-          , cassava
-          , deepseq
-          , ghc-prim
-          , hw-bits
-          , hw-prim
-          , hw-rankselect
-          , hw-rankselect-base
-          , hw-simd
-          , vector
-          , weigh
-  type:             exitcode-stdio-1.0
-  main-is:          Space.hs
-  build-depends:    hw-dsv
-  other-modules:    Paths_hw_dsv
-  autogen-modules:  Paths_hw_dsv
-  hs-source-dirs:   weigh
-  build-tool-depends: hspec-discover:hspec-discover
+  import:               base, config
+                      , bits-extra
+                      , bytestring
+                      , cassava
+                      , deepseq
+                      , ghc-prim
+                      , hw-bits
+                      , hw-prim
+                      , hw-rankselect
+                      , hw-rankselect-base
+                      , hw-simd
+                      , vector
+                      , weigh
+  type:                 exitcode-stdio-1.0
+  main-is:              Space.hs
+  build-depends:        hw-dsv
+  other-modules:        Paths_hw_dsv
+  autogen-modules:      Paths_hw_dsv
+  hs-source-dirs:       weigh
+  build-tool-depends:   hspec-discover:hspec-discover
 
 test-suite hw-dsv-test
-  import:   base, common
-          , bits-extra
-          , bytestring
-          , deepseq
-          , directory
-          , ghc-prim
-          , hedgehog
-          , hspec
-          , hw-bits
-          , hw-hspec-hedgehog
-          , hw-prim
-          , hw-rankselect
-          , hw-rankselect-base
-          , hw-simd
-          , text
-          , vector
-  ghc-options:      -threaded -rtsopts -with-rtsopts=-N
-  build-depends:    hw-dsv
-  type:             exitcode-stdio-1.0
-  main-is:          Spec.hs
-  other-modules:
-      HaskellWorks.Data.Dsv.BroadwordSpec
-      HaskellWorks.Data.Dsv.Gen
-      HaskellWorks.Data.Dsv.Lazy.CursorSpec
-      HaskellWorks.Data.Dsv.Strict.Cursor.InternalSpec
-      HaskellWorks.Data.DsvSpec
-      Paths_hw_dsv
-  autogen-modules:  Paths_hw_dsv
-  hs-source-dirs:   test
-  build-tool-depends: hspec-discover:hspec-discover
+  import:               base, config
+                      , bits-extra
+                      , bytestring
+                      , deepseq
+                      , directory
+                      , ghc-prim
+                      , hedgehog
+                      , hspec
+                      , hw-bits
+                      , hw-hspec-hedgehog
+                      , hw-prim
+                      , hw-rankselect
+                      , hw-rankselect-base
+                      , hw-simd
+                      , text
+                      , vector
+  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
+  build-depends:        hw-dsv
+  type:                 exitcode-stdio-1.0
+  main-is:              Spec.hs
+  other-modules:        HaskellWorks.Data.Dsv.BroadwordSpec
+                        HaskellWorks.Data.Dsv.Gen
+                        HaskellWorks.Data.Dsv.Lazy.CursorSpec
+                        HaskellWorks.Data.Dsv.Strict.Cursor.InternalSpec
+                        HaskellWorks.Data.DsvSpec
+                        Paths_hw_dsv
+  autogen-modules:      Paths_hw_dsv
+  hs-source-dirs:       test
+  build-tool-depends:   hspec-discover:hspec-discover
 
 benchmark bench
-  import:   base, common
-          , bits-extra
-          , bytestring
-          , cassava
-          , criterion
-          , deepseq
-          , directory
-          , ghc-prim
-          , hw-bits
-          , hw-prim
-          , hw-rankselect
-          , hw-rankselect-base
-          , hw-simd
-          , mmap
-          , vector
-  type:             exitcode-stdio-1.0
-  main-is:          Main.hs
-  other-modules:    Paths_hw_dsv
-  autogen-modules:  Paths_hw_dsv
-  hs-source-dirs:   bench
-  ghc-options:      -msse4.2
-  build-depends:    hw-dsv
+  import:               base, config
+                      , bits-extra
+                      , bytestring
+                      , cassava
+                      , criterion
+                      , deepseq
+                      , directory
+                      , ghc-prim
+                      , hw-bits
+                      , hw-prim
+                      , hw-rankselect
+                      , hw-rankselect-base
+                      , hw-simd
+                      , mmap
+                      , vector
+  type:                 exitcode-stdio-1.0
+  main-is:              Main.hs
+  other-modules:        Paths_hw_dsv
+  autogen-modules:      Paths_hw_dsv
+  hs-source-dirs:       bench
+  ghc-options:          -msse4.2
+  build-depends:        hw-dsv
diff --git a/test/HaskellWorks/Data/Dsv/BroadwordSpec.hs b/test/HaskellWorks/Data/Dsv/BroadwordSpec.hs
--- a/test/HaskellWorks/Data/Dsv/BroadwordSpec.hs
+++ b/test/HaskellWorks/Data/Dsv/BroadwordSpec.hs
@@ -14,7 +14,7 @@
 
 {-# ANN module ("HLint: ignore Redundant do"        :: String) #-}
 {-# ANN module ("HLint: ignore Reduce duplication"  :: String) #-}
-{-# ANN module ("HLint: redundant bracket"          :: String) #-}
+{-# ANN module ("HLint: ignore Redundant bracket"   :: String) #-}
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.Dsv.BroadwordSpec" $ do
diff --git a/test/HaskellWorks/Data/DsvSpec.hs b/test/HaskellWorks/Data/DsvSpec.hs
--- a/test/HaskellWorks/Data/DsvSpec.hs
+++ b/test/HaskellWorks/Data/DsvSpec.hs
@@ -15,7 +15,7 @@
 
 {-# ANN module ("HLint: ignore Redundant do"        :: String) #-}
 {-# ANN module ("HLint: ignore Reduce duplication"  :: String) #-}
-{-# ANN module ("HLint: redundant bracket"          :: String) #-}
+{-# ANN module ("HLint: ignore Redundant bracket"   :: String) #-}
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.DsvSpec" $ do
