diff --git a/bencoding.cabal b/bencoding.cabal
--- a/bencoding.cabal
+++ b/bencoding.cabal
@@ -1,5 +1,5 @@
 name:                  bencoding
-version:               0.2.1.0
+version:               0.2.2.0
 license:               BSD3
 license-file:          LICENSE
 author:                Sam Truzjan
@@ -9,8 +9,8 @@
 build-type:            Simple
 stability:             Experimental
 cabal-version:         >= 1.10
-tested-with:           GHC==7.4.1
-                     , GHC==7.6.3
+tested-with:           GHC == 7.4.1
+                     , GHC == 7.6.3
 homepage:              https://github.com/cobit/bencoding
 bug-reports:           https://github.com/cobit/bencoding/issues
 synopsis:              A library for encoding and decoding of BEncode data.
@@ -24,7 +24,7 @@
   .
     * /0.2.0.0:/ Added default decoders/encoders using GHC Generics.
   .
-    * /0.2.1.0:/ Arbitrary length integers. (by specification)
+    * /0.2.2.0:/ Arbitrary length integers. (by specification)
 
 extra-source-files:    README.md
 
@@ -37,7 +37,7 @@
   type:                git
   location:            git://github.com/cobit/bencoding.git
   branch:              master
-  tag:                 v0.2.1.0
+  tag:                 v0.2.2.0
 
 library
   default-language:    Haskell2010
diff --git a/src/Data/BEncode.hs b/src/Data/BEncode.hs
--- a/src/Data/BEncode.hs
+++ b/src/Data/BEncode.hs
@@ -366,6 +366,8 @@
   fromBEncode _           = decodingError "BString"
   {-# INLINE fromBEncode #-}
 
+{- NOTE: those overlap with instance BEncodable a => BEncodable [a]
+
 instance BEncodable BList where
   toBEncode = BList
   {-# INLINE toBEncode #-}
@@ -381,6 +383,7 @@
   fromBEncode (BDict d) = pure d
   fromBEncode _         = decodingError "BDict"
   {-# INLINE fromBEncode #-}
+-}
 
 {--------------------------------------------------------------------
 --  Integral instances
@@ -495,7 +498,7 @@
   {-# INLINE fromBEncode #-}
 
 instance BEncodable a => BEncodable [a] where
-  {-# SPECIALIZE instance BEncodable [BEncode] #-}
+  {-# SPECIALIZE instance BEncodable BList #-}
   toBEncode = BList . map toBEncode
   {-# INLINE toBEncode #-}
 
@@ -504,7 +507,7 @@
   {-# INLINE fromBEncode #-}
 
 instance BEncodable a => BEncodable (Map ByteString a) where
-  {-# SPECIALIZE instance BEncodable (Map ByteString BEncode) #-}
+  {-# SPECIALIZE instance BEncodable BDict #-}
   toBEncode = BDict . M.map toBEncode
   {-# INLINE toBEncode #-}
 
