diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
-# hw-succinct
-[![Circle CI](https://circleci.com/gh/haskell-works/hw-succinct.svg?style=svg)](https://circleci.com/gh/haskell-works/hw-succinct)
+# hw-bits
+[![v0.0-branch](https://circleci.com/gh/haskell-works/hw-succinct/tree/v0.0-branch.svg?style=svg)](https://circleci.com/gh/haskell-works/hw-succinct/tree/v0.0-branch)
+
 Conduits for tokenizing streams.
 
 `hw-succinct` is a succinct JSON parsing library.  It uses succinct data-structures to allow traversal of
@@ -88,7 +89,7 @@
     let !bs = BSI.fromForeignPtr (castForeignPtr fptr) offset size
     x <- measure $ BS.concat $ runListConduit [bs] (blankJson =$= blankedJsonToInterestBits)
     x <- measure $ jsonBsToInterestBs bs
-    
+
     jsonTokenAt $ J.nextSibling $ J.firstChild $ J.nextSibling $ J.firstChild $ J.firstChild  cursor
 
 ## References
diff --git a/hw-succinct.cabal b/hw-succinct.cabal
--- a/hw-succinct.cabal
+++ b/hw-succinct.cabal
@@ -1,5 +1,5 @@
 name:                   hw-succinct
-version:                0.0.0.5
+version:                0.0.0.7
 synopsis:               Conduits for tokenizing streams.
 description:            Please see README.md
 homepage:               http://github.com/haskell-works/hw-succinct#readme
@@ -23,6 +23,7 @@
                       , conduit
                       , criterion
                       , hw-bits
+                      , hw-prim
                       , hw-succinct
                       , mmap
                       , resourcet
@@ -31,8 +32,7 @@
 
 library
   hs-source-dirs:       src
-  exposed-modules:      HaskellWorks.Data.Attoparsec.Final.IsChar
-                      , HaskellWorks.Data.Attoparsec.Final.Parser
+  exposed-modules:      HaskellWorks.Data.Attoparsec.Final.Parser
                       , HaskellWorks.Data.Conduit.ByteString
                       , HaskellWorks.Data.Conduit.Json
                       , HaskellWorks.Data.Conduit.Json.Blank
@@ -71,6 +71,7 @@
                       , deepseq                         <  1.5
                       , ghc-prim
                       , hw-bits
+                      , hw-prim
                       , lens
                       , mmap
                       , mono-traversable
@@ -112,6 +113,7 @@
                       , conduit                         >= 1.1  && < 1.3
                       , hspec                           >= 1.3
                       , hw-bits
+                      , hw-prim
                       , hw-succinct
                       , mmap
                       , parsec
@@ -137,6 +139,7 @@
                       , conduit
                       , criterion
                       , hw-bits
+                      , hw-prim
                       , hw-succinct
                       , mmap
                       , resourcet
diff --git a/src/HaskellWorks/Data/Attoparsec/Final/IsChar.hs b/src/HaskellWorks/Data/Attoparsec/Final/IsChar.hs
deleted file mode 100644
--- a/src/HaskellWorks/Data/Attoparsec/Final/IsChar.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-module HaskellWorks.Data.Attoparsec.Final.IsChar
-    ( IsChar(..)
-    ) where
-
-import qualified Data.ByteString.Internal as BI
-import           Data.Word8
-
-class IsChar c where
-  toChar :: c -> Char
-
-instance IsChar Word8 where
-  toChar = BI.w2c
-  {-# INLINABLE toChar #-}
-
-instance IsChar Char where
-  toChar = id
-  {-# INLINABLE toChar #-}
diff --git a/src/HaskellWorks/Data/Attoparsec/Final/Parser.hs b/src/HaskellWorks/Data/Attoparsec/Final/Parser.hs
--- a/src/HaskellWorks/Data/Attoparsec/Final/Parser.hs
+++ b/src/HaskellWorks/Data/Attoparsec/Final/Parser.hs
@@ -9,7 +9,7 @@
 import           Data.ByteString                           (ByteString)
 import           Data.MonoTraversable
 import           Data.Text                                 (Text)
-import           HaskellWorks.Data.Attoparsec.Final.IsChar
+import           HaskellWorks.Data.Char.IsChar
 
 class MonoTraversable t => Parser t where
   satisfy :: (Element t -> Bool) -> T.Parser t (Element t)
diff --git a/src/HaskellWorks/Data/Json/Final/Tokenize/Internal.hs b/src/HaskellWorks/Data/Json/Final/Tokenize/Internal.hs
--- a/src/HaskellWorks/Data/Json/Final/Tokenize/Internal.hs
+++ b/src/HaskellWorks/Data/Json/Final/Tokenize/Internal.hs
@@ -18,8 +18,8 @@
 import           Data.Bits
 import           Data.Char
 import           Data.String
-import           HaskellWorks.Data.Attoparsec.Final.IsChar
 import           HaskellWorks.Data.Attoparsec.Final.Parser as AFP
+import           HaskellWorks.Data.Char.IsChar
 import           HaskellWorks.Data.Json.Token
 
 hexDigitNumeric :: AFP.Parser t => T.Parser t Int
diff --git a/test/HaskellWorks/Data/Bits/BitReadSpec.hs b/test/HaskellWorks/Data/Bits/BitReadSpec.hs
--- a/test/HaskellWorks/Data/Bits/BitReadSpec.hs
+++ b/test/HaskellWorks/Data/Bits/BitReadSpec.hs
@@ -3,6 +3,7 @@
 
 module HaskellWorks.Data.Bits.BitReadSpec (spec) where
 
+import           GHC.Exts
 import qualified Data.Vector                    as DV
 import           Data.Word
 import           HaskellWorks.Data.Bits.BitRead
@@ -27,16 +28,16 @@
     ws `shouldBe` Just []
   it "bitRead \"10000000 101\" :: Maybe (DV.Vector Word8)" $
     let v = bitRead "10000000 101" :: Maybe (DV.Vector Word8) in
-    v `shouldBe` Just (DV.fromList [1, 5])
+    v `shouldBe` Just (fromList [1, 5])
   it "bitRead \"11100100 10101111 1\" :: Maybe (DV.Vector Word8)" $
     let v = bitRead "11100100 10101111 1" :: Maybe (DV.Vector Word8) in
-    v `shouldBe` Just (DV.fromList [39, 245, 1])
+    v `shouldBe` Just (fromList [39, 245, 1])
   it "bitRead \"11100100 10101111 1\" :: Maybe (DV.Vector Word16)" $
     let v = bitRead "11100100 10101111 1" :: Maybe (DV.Vector Word16) in
-    v `shouldBe` Just (DV.fromList [39 + 62720, 1])
+    v `shouldBe` Just (fromList [39 + 62720, 1])
   it "bitRead \"\" :: Maybe (DV.Vector Word8)" $
     let v = bitRead "" :: Maybe (DV.Vector Word8) in
-    v `shouldBe` Just (DV.fromList [])
+    v `shouldBe` Just (fromList [])
   it "bitShow (8 :: Word8)" $
     let bs = bitShow (8 :: Word8) in
     bs `shouldBe` "00010000"
diff --git a/test/HaskellWorks/Data/Succinct/RankSelect/Binary/Poppy512Spec.hs b/test/HaskellWorks/Data/Succinct/RankSelect/Binary/Poppy512Spec.hs
--- a/test/HaskellWorks/Data/Succinct/RankSelect/Binary/Poppy512Spec.hs
+++ b/test/HaskellWorks/Data/Succinct/RankSelect/Binary/Poppy512Spec.hs
@@ -4,6 +4,7 @@
 
 module HaskellWorks.Data.Succinct.RankSelect.Binary.Poppy512Spec (spec) where
 
+import           GHC.Exts
 import qualified Data.Vector.Storable                                       as DVS
 import           Data.Word
 import           HaskellWorks.Data.Bits.BitShow
@@ -31,7 +32,7 @@
 vectorSizedBetween a b = do
   n   <- choose (a, b)
   xs  <- sequence [ arbitrary | _ <- [1 .. n] ]
-  return $ ShowVector (DVS.fromList xs)
+  return $ ShowVector (fromList xs)
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.Succinct.RankSelect.Binary.Poppy512.Rank1Spec" $ do
@@ -85,7 +86,7 @@
       let i = 0 in
       select0 v i === select0 w i
     it "on one full zero basic block" $
-      let v = DVS.fromList [0, 0, 0, 0, 0, 0, 0, 0] :: DVS.Vector Word64 in
+      let v = fromList [0, 0, 0, 0, 0, 0, 0, 0] :: DVS.Vector Word64 in
       let w = makePoppy512 v in
       select0 v 0 === select0 w 0
     it "on one basic block" $
@@ -110,7 +111,7 @@
       let i = 0 in
       select1 v i === select1 w i
     it "on one full zero basic block" $
-      let v = DVS.fromList [0, 0, 0, 0, 0, 0, 0, 0] :: DVS.Vector Word64 in
+      let v = fromList [0, 0, 0, 0, 0, 0, 0, 0] :: DVS.Vector Word64 in
       let w = makePoppy512 v in
       select1 v 0 === select1 w 0
     it "on one basic block" $
