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.0.0.0
+version:             0.1.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
@@ -35,10 +35,10 @@
                      , Pipes.KeyValueCsv.Internal.KeyValue
                      , Pipes.KeyValueCsv.Internal.Names
                      , Pipes.KeyValueCsv.Internal.Types
-  build-depends:       base               >= 4.8     && < 4.9
+  build-depends:       base               >= 4.8     && < 5
                      , containers         >= 0.5.6   && < 0.6
                      , data-default-class >= 0.0.1   && < 0.2
-                     , lens               >= 4.12    && < 4.14
+                     , lens               >= 4.12    && < 4.15
                      , mtl                >= 2.2     && < 2.3
                      , pipes              >= 4.1     && < 4.2
                      , pipes-bytestring   >= 2.1     && < 2.2
@@ -49,8 +49,8 @@
                      , reflection         >= 1.5     && < 2.2
                      , text               >= 1.2     && < 1.3
                      , validation         >= 0.5.2   && < 0.6
-                     , vinyl              >= 0.5     && < 0.6
-                     , vinyl-utils        >= 0.2.0.1 && < 0.3
+                     , vinyl              >= 0.5.2   && < 0.6
+                     , vinyl-utils        >= 0.2.0.1 && < 0.4
   hs-source-dirs:      src
   default-language:    Haskell2010
   ghc-options: -Wall 
diff --git a/src/Pipes/KeyValueCsv/IO.hs b/src/Pipes/KeyValueCsv/IO.hs
--- a/src/Pipes/KeyValueCsv/IO.hs
+++ b/src/Pipes/KeyValueCsv/IO.hs
@@ -27,7 +27,6 @@
 
 import Pipes.KeyValueCsv
 
-import Data.Reflection
 import Data.Vinyl
 import Data.Vinyl.Functor
 import Pipes
@@ -53,8 +52,7 @@
 
 streamIn 
   :: forall (m :: * -> *) (f :: k -> *) (g :: j -> *) (hs :: [k]) (rs :: [j])
-   . ( Given Delimiter
-     , MonadIO m
+   . ( MonadIO m
      , MonadMask m
      , Record hs
      )
diff --git a/src/Pipes/KeyValueCsv/Internal/KeyValue.hs b/src/Pipes/KeyValueCsv/Internal/KeyValue.hs
--- a/src/Pipes/KeyValueCsv/Internal/KeyValue.hs
+++ b/src/Pipes/KeyValueCsv/Internal/KeyValue.hs
@@ -104,7 +104,6 @@
 fromKeyValues (_,p) RNil RNil RNil = do
   x <- runEffect $ p >-> Pipes.drain
   pure (RNil, x)
-fromKeyValues _ RNil _ _ = error "impossible due to GADT constraints on Rec"
 fromKeyValues pair@(key,value) (Compose (WrapParser parser) :& ps) (Const expected :& ks) (r :& rs) = do
   if key == expected 
     then do
@@ -118,5 +117,4 @@
     else do
       (remaining, result) <- fromKeyValues pair ps ks rs
       pure (r :& remaining, result)
-fromKeyValues _ (_ :& _) _ _ = error "impossible due to GADT constraints on Rec"
 
diff --git a/src/Pipes/KeyValueCsv/KeyValue.hs b/src/Pipes/KeyValueCsv/KeyValue.hs
--- a/src/Pipes/KeyValueCsv/KeyValue.hs
+++ b/src/Pipes/KeyValueCsv/KeyValue.hs
@@ -68,8 +68,6 @@
 joinRecs :: Rec (WithKeyValueError :. f) rs -> Rec (WithKeyValueError :. f) rs -> Rec (WithKeyValueError :. f) rs
 -- ^Join two 'Rec's, replacing missing values with successes and accumulating failures.
 joinRecs RNil RNil = RNil
-joinRecs RNil _ = error "impossible"
-joinRecs  _ RNil= error "impossible"
 joinRecs (Compose va :& as) (Compose vb :& bs) = Compose new :& joinRecs as bs
   where
     new = case (va, vb) of
diff --git a/test/Test/Instances.hs b/test/Test/Instances.hs
--- a/test/Test/Instances.hs
+++ b/test/Test/Instances.hs
@@ -22,8 +22,6 @@
   arbitrary = (:&) <$> arbitrary <*> arbitrary
   shrink = shrinkNothing
 
-deriving instance Eq a => Eq (Identity a)
-
 instance Arbitrary a => Arbitrary (Identity a) where
   arbitrary = Identity <$> arbitrary
   shrink (Identity a) = Identity <$> shrink a
