diff --git a/pipes-key-value-csv.cabal b/pipes-key-value-csv.cabal
--- a/pipes-key-value-csv.cabal
+++ b/pipes-key-value-csv.cabal
@@ -1,5 +1,5 @@
 name:                pipes-key-value-csv
-version:             0.3.0.0
+version:             0.4.0.0
 synopsis:            Streaming processing of CSV files preceded by key-value pairs.
 description:         Nonstandard CSV files, with the table preceded by a header consisting of key-value pairs are often the output format of varius test equipment, such as digital oscilloscopes.
 homepage:            https://github.com/marcinmrotek/key-value-csv
@@ -37,7 +37,7 @@
                      , Pipes.KeyValueCsv.Internal.Types
                      , Data.Validation
   build-depends:       base               >= 4.8     && < 5
-                     , bifunctors         >= 5.3     && < 5.4
+                     , bifunctors         >= 5.2     && < 5.4
                      , containers         >= 0.5.6   && < 0.6
                      , data-default-class >= 0.0.1   && < 0.2
                      , lens               >= 4.12    && < 4.15
@@ -53,6 +53,8 @@
                      , text               >= 1.2     && < 1.3
                      , vinyl              >= 0.5.2   && < 0.6
                      , vinyl-utils        >= 0.2.0.1 && < 0.4
+  if impl(ghc < 8.0)
+    build-depends: semigroups == 0.18.*
   hs-source-dirs:      src
   default-language:    Haskell2010
   ghc-options: -Wall 
