diff --git a/hw-bits.cabal b/hw-bits.cabal
--- a/hw-bits.cabal
+++ b/hw-bits.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.2
 
 name:                   hw-bits
-version:                0.7.2.0
+version:                0.7.2.1
 synopsis:               Bit manipulation
 description:            Please see README.md
 category:               Data, Bit
@@ -135,7 +135,7 @@
                       , vector
   default-language:     Haskell2010
   type:                 exitcode-stdio-1.0
-  ghc-options:          -threaded
+  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
   main-is:              DoctestDriver.hs
   HS-Source-Dirs:       doctest
   build-tool-depends:   doctest-discover:doctest-discover
diff --git a/src/HaskellWorks/Data/Bits/BitRead.hs b/src/HaskellWorks/Data/Bits/BitRead.hs
--- a/src/HaskellWorks/Data/Bits/BitRead.hs
+++ b/src/HaskellWorks/Data/Bits/BitRead.hs
@@ -4,6 +4,7 @@
 
 module HaskellWorks.Data.Bits.BitRead
   ( BitRead(..)
+  , unsafeBitRead
   ) where
 
 import Data.Maybe
@@ -22,6 +23,12 @@
 class BitRead a where
   -- | Read a bit string into a value
   bitRead :: String -> Maybe a
+
+-- | Read a bit string into a value.
+--
+-- This function is unsafe because it is a partial function that errors if the input string is an invaild bit string
+unsafeBitRead :: BitRead a => String -> a
+unsafeBitRead s = fromMaybe (error "Invalid bit string") (bitRead s)
 
 bitRead' :: BitParse a => String -> Maybe a
 bitRead' s = fst `fmap` listToMaybe (parse bitParse0 (filter (/= ' ') s))
diff --git a/src/HaskellWorks/Data/Bits/Writer/Storable.hs b/src/HaskellWorks/Data/Bits/Writer/Storable.hs
--- a/src/HaskellWorks/Data/Bits/Writer/Storable.hs
+++ b/src/HaskellWorks/Data/Bits/Writer/Storable.hs
@@ -9,7 +9,7 @@
 import qualified Data.STRef                   as ST
 import qualified Data.Vector.Storable.Mutable as DVSM
 
-{-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}
+{- HLINT ignore "Reduce duplication"  -}
 
 data Writer s = Writer
   { vector   :: DVSM.MVector s Word64
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
@@ -15,7 +15,7 @@
 import qualified Data.Vector         as DV
 import qualified Data.Vector.Unboxed as DVU
 
-{-# ANN module ("HLint: ignore Redundant do" :: String) #-}
+{- HLINT ignore "Reduce duplication"  -}
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.BitReadSpec" $ do
diff --git a/test/HaskellWorks/Data/Bits/BitWiseSpec.hs b/test/HaskellWorks/Data/Bits/BitWiseSpec.hs
--- a/test/HaskellWorks/Data/Bits/BitWiseSpec.hs
+++ b/test/HaskellWorks/Data/Bits/BitWiseSpec.hs
@@ -17,7 +17,7 @@
 import qualified Hedgehog.Gen         as G
 import qualified Hedgehog.Range       as R
 
-{-# ANN module ("HLint: ignore Redundant do" :: String) #-}
+{- HLINT ignore "Reduce duplication"  -}
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.Bits.BitWiseSpec" $ do
diff --git a/test/HaskellWorks/Data/Bits/Broadword/Word16Spec.hs b/test/HaskellWorks/Data/Bits/Broadword/Word16Spec.hs
--- a/test/HaskellWorks/Data/Bits/Broadword/Word16Spec.hs
+++ b/test/HaskellWorks/Data/Bits/Broadword/Word16Spec.hs
@@ -11,7 +11,7 @@
 import qualified Hedgehog.Gen                            as G
 import qualified Hedgehog.Range                          as R
 
-{-# ANN module ("HLint: ignore Redundant do" :: String) #-}
+{- HLINT ignore "Reduce duplication"  -}
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.Bits.Broadword.Word16" $ do
diff --git a/test/HaskellWorks/Data/Bits/Broadword/Word32Spec.hs b/test/HaskellWorks/Data/Bits/Broadword/Word32Spec.hs
--- a/test/HaskellWorks/Data/Bits/Broadword/Word32Spec.hs
+++ b/test/HaskellWorks/Data/Bits/Broadword/Word32Spec.hs
@@ -11,7 +11,7 @@
 import qualified Hedgehog.Gen                            as G
 import qualified Hedgehog.Range                          as R
 
-{-# ANN module ("HLint: ignore Redundant do" :: String) #-}
+{- HLINT ignore "Reduce duplication"  -}
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.Bits.Broadword.Word32" $ do
diff --git a/test/HaskellWorks/Data/Bits/Broadword/Word64Spec.hs b/test/HaskellWorks/Data/Bits/Broadword/Word64Spec.hs
--- a/test/HaskellWorks/Data/Bits/Broadword/Word64Spec.hs
+++ b/test/HaskellWorks/Data/Bits/Broadword/Word64Spec.hs
@@ -11,7 +11,7 @@
 import qualified Hedgehog.Gen                            as G
 import qualified Hedgehog.Range                          as R
 
-{-# ANN module ("HLint: ignore Redundant do" :: String) #-}
+{- HLINT ignore "Reduce duplication"  -}
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.Bits.Broadword.Word64" $ do
diff --git a/test/HaskellWorks/Data/Bits/Broadword/Word8Spec.hs b/test/HaskellWorks/Data/Bits/Broadword/Word8Spec.hs
--- a/test/HaskellWorks/Data/Bits/Broadword/Word8Spec.hs
+++ b/test/HaskellWorks/Data/Bits/Broadword/Word8Spec.hs
@@ -15,7 +15,7 @@
 import qualified Hedgehog.Gen                           as G
 import qualified Hedgehog.Range                         as R
 
-{-# ANN module ("HLint: ignore Redundant do" :: String) #-}
+{- HLINT ignore "Reduce duplication"  -}
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.Bits.Broadword.Word8" $ do
diff --git a/test/HaskellWorks/Data/Bits/FromBitTextByteStringSpec.hs b/test/HaskellWorks/Data/Bits/FromBitTextByteStringSpec.hs
--- a/test/HaskellWorks/Data/Bits/FromBitTextByteStringSpec.hs
+++ b/test/HaskellWorks/Data/Bits/FromBitTextByteStringSpec.hs
@@ -17,7 +17,7 @@
 import qualified Data.Vector.Storable as DVS
 import qualified Data.Vector.Unboxed  as DVU
 
-{-# ANN module ("HLint: ignore Redundant do" :: String) #-}
+{- HLINT ignore "Reduce duplication"  -}
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.Bits.FromBitTextByteStringSpec" $ do
diff --git a/test/HaskellWorks/Data/Bits/Log2Spec.hs b/test/HaskellWorks/Data/Bits/Log2Spec.hs
--- a/test/HaskellWorks/Data/Bits/Log2Spec.hs
+++ b/test/HaskellWorks/Data/Bits/Log2Spec.hs
@@ -11,7 +11,7 @@
 import qualified Hedgehog.Gen   as G
 import qualified Hedgehog.Range as R
 
-{-# ANN module ("HLint: ignore Redundant do" :: String) #-}
+{- HLINT ignore "Reduce duplication"  -}
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.Bits.Log2Spec" $ do
diff --git a/test/HaskellWorks/Data/Bits/Writer/StorableSpec.hs b/test/HaskellWorks/Data/Bits/Writer/StorableSpec.hs
--- a/test/HaskellWorks/Data/Bits/Writer/StorableSpec.hs
+++ b/test/HaskellWorks/Data/Bits/Writer/StorableSpec.hs
@@ -11,7 +11,7 @@
 import qualified Data.Vector.Storable                   as DVS
 import qualified HaskellWorks.Data.Bits.Writer.Storable as WS
 
-{-# ANN module ("HLint: ignore Redundant do" :: String) #-}
+{- HLINT ignore "Reduce duplication"  -}
 
 spec :: Spec
 spec = describe "HaskellWorks.Data.Bits.Writer.StorableSpec" $ do
