diff --git a/hw-rankselect.cabal b/hw-rankselect.cabal
--- a/hw-rankselect.cabal
+++ b/hw-rankselect.cabal
@@ -1,5 +1,5 @@
 name:                   hw-rankselect
-version:                0.8.0.1
+version:                0.8.0.2
 synopsis:               Rank-select
 description:            Please see README.md
 homepage:               http://github.com/haskell-works/hw-rankselect#readme
diff --git a/src/HaskellWorks/Data/RankSelect/CsPoppy.hs b/src/HaskellWorks/Data/RankSelect/CsPoppy.hs
--- a/src/HaskellWorks/Data/RankSelect/CsPoppy.hs
+++ b/src/HaskellWorks/Data/RankSelect/CsPoppy.hs
@@ -8,6 +8,7 @@
 import qualified Data.Vector.Storable                                       as DVS
 import           Data.Word
 import           HaskellWorks.Data.AtIndex
+import           HaskellWorks.Data.Bits.BitLength
 import           HaskellWorks.Data.Bits.BitRead
 import           HaskellWorks.Data.Bits.BitWise
 import           HaskellWorks.Data.Bits.PopCount.PopCount1
@@ -28,6 +29,10 @@
 instance AsVector64 CsPoppy where
   asVector64 = asVector64 . csPoppyBits
   {-# INLINE asVector64 #-}
+
+instance BitLength CsPoppy where
+  bitLength = bitLength . csPoppyBits
+  {-# INLINE bitLength #-}
 
 popCount1Range :: (DVS.Storable a, PopCount1 a) => Int -> Int -> DVS.Vector a -> Count
 popCount1Range start len = popCount1 . DVS.take len . DVS.drop start
diff --git a/src/HaskellWorks/Data/RankSelect/CsPoppy2.hs b/src/HaskellWorks/Data/RankSelect/CsPoppy2.hs
--- a/src/HaskellWorks/Data/RankSelect/CsPoppy2.hs
+++ b/src/HaskellWorks/Data/RankSelect/CsPoppy2.hs
@@ -8,6 +8,7 @@
 import qualified Data.Vector.Storable                                       as DVS
 import           Data.Word
 import           HaskellWorks.Data.AtIndex
+import           HaskellWorks.Data.Bits.BitLength
 import           HaskellWorks.Data.Bits.BitRead
 import           HaskellWorks.Data.Bits.BitWise
 import           HaskellWorks.Data.Bits.PopCount.PopCount1
@@ -28,6 +29,10 @@
 instance AsVector64 CsPoppy2 where
   asVector64 = asVector64 . csPoppy2Bits
   {-# INLINE asVector64 #-}
+
+instance BitLength CsPoppy2 where
+  bitLength = bitLength . csPoppy2Bits
+  {-# INLINE bitLength #-}
 
 popCount1Range :: (DVS.Storable a, PopCount1 a) => Int -> Int -> DVS.Vector a -> Count
 popCount1Range start len = popCount1 . DVS.take len . DVS.drop start
