diff --git a/hw-prim.cabal b/hw-prim.cabal
--- a/hw-prim.cabal
+++ b/hw-prim.cabal
@@ -1,5 +1,5 @@
 name:                   hw-prim
-version:                0.0.0.2
+version:                0.0.0.7
 synopsis:               Primitive functions and data types
 description:            Please see README.md
 homepage:               http://github.com/haskell-works/hw-prim#readme
@@ -25,6 +25,7 @@
 library
   hs-source-dirs:       src
   exposed-modules:      HaskellWorks.Data.ByteString
+                      , HaskellWorks.Data.Char.IsChar
                       , HaskellWorks.Data.FromByteString
                       , HaskellWorks.Data.FromForeignRegion
                       , HaskellWorks.Data.Positioning
diff --git a/src/HaskellWorks/Data/Char/IsChar.hs b/src/HaskellWorks/Data/Char/IsChar.hs
new file mode 100644
--- /dev/null
+++ b/src/HaskellWorks/Data/Char/IsChar.hs
@@ -0,0 +1,17 @@
+module HaskellWorks.Data.Char.IsChar
+    ( IsChar(..)
+    ) where
+
+import qualified Data.ByteString.Internal as BI
+import           Data.Word
+
+class IsChar c where
+  toChar :: c -> Char
+
+instance IsChar Word8 where
+  toChar = BI.w2c
+  {-# INLINABLE toChar #-}
+
+instance IsChar Char where
+  toChar = id
+  {-# INLINABLE toChar #-}
