diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Changelog for utf8-conversions
 
+#### 0.1.0.4
+
+Changed so that type synonyms around strings are not exported
+
 #### 0.1.0.3
 
 - Fixed test dependencies to upload to stackage.
diff --git a/src/Data/Convertible/Utf8.hs b/src/Data/Convertible/Utf8.hs
--- a/src/Data/Convertible/Utf8.hs
+++ b/src/Data/Convertible/Utf8.hs
@@ -1,22 +1,30 @@
 {-# LANGUAGE FlexibleInstances     #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 
-module Data.Convertible.Utf8 where
+module Data.Convertible.Utf8
+  ( convert,
+    Convertible,
+  )
+where
 
-import qualified Codec.Binary.UTF8.String  as Codec.UTF8
-import qualified Data.ByteString           as BS
-import qualified Data.ByteString.Builder   as BSB
-import qualified Data.ByteString.Lazy      as BSL
-import qualified Data.ByteString.Lazy.UTF8 as BSL.UTF8
-import qualified Data.ByteString.Short     as BSS
-import qualified Data.ByteString.UTF8      as BS.UTF8
-import           Data.Maybe                (fromJust)
-import qualified Data.Text                 as T
-import qualified Data.Text.Encoding        as TE
-import qualified Data.Text.Lazy            as TL
-import qualified Data.Text.Lazy.Builder    as TB
-import qualified Data.Text.Lazy.Encoding   as TLE
-import qualified Data.Text.Short           as TS
+import qualified Codec.Binary.UTF8.String       as Codec.UTF8
+import qualified Data.ByteString                as BS
+import qualified Data.ByteString.Builder        as BSB
+import qualified Data.ByteString.Lazy           as BSL
+import qualified Data.ByteString.Lazy.UTF8      as BSL.UTF8
+import qualified Data.ByteString.Short          as BSS
+import qualified Data.ByteString.UTF8           as BS.UTF8
+import           Data.Convertible.Utf8.Internal (ByteString, ByteStringBuilder,
+                                                 LazyByteString, LazyText,
+                                                 ShortByteString, ShortText,
+                                                 Text, TextBuilder)
+import           Data.Maybe                     (fromJust)
+import qualified Data.Text                      as T
+import qualified Data.Text.Encoding             as TE
+import qualified Data.Text.Lazy                 as TL
+import qualified Data.Text.Lazy.Builder         as TB
+import qualified Data.Text.Lazy.Encoding        as TLE
+import qualified Data.Text.Short                as TS
 
 -- | A typeclass that represents something that can be converted.
 --  A @Convertible a b@ instance represents an @a@ that can be converted to a @b@.
@@ -24,15 +32,6 @@
   -- | Convert from @a@ to @b@.
   --    Byte string is assumed to be in utf-8 encoding.
   convert :: a -> b
-
-type Text = T.Text
-type LazyText = TL.Text
-type TextBuilder = TB.Builder
-type ShortText = TS.ShortText
-type ByteString = BS.ByteString
-type LazyByteString = BSL.ByteString
-type ByteStringBuilder = BSB.Builder
-type ShortByteString = BSS.ShortByteString
 
 -- Convert from String
 
diff --git a/src/Data/Convertible/Utf8/Internal.hs b/src/Data/Convertible/Utf8/Internal.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Convertible/Utf8/Internal.hs
@@ -0,0 +1,36 @@
+module Data.Convertible.Utf8.Internal
+  ( Text,
+    LazyText,
+    TextBuilder,
+    ShortText,
+    ByteString,
+    LazyByteString,
+    ByteStringBuilder,
+    ShortByteString,
+  )
+where
+
+import qualified Data.ByteString         as BS
+import qualified Data.ByteString.Builder as BSB
+import qualified Data.ByteString.Lazy    as BSL
+import qualified Data.ByteString.Short   as BSS
+import qualified Data.Text               as T
+import qualified Data.Text.Lazy          as TL
+import qualified Data.Text.Lazy.Builder  as TB
+import qualified Data.Text.Short         as TS
+
+type Text = T.Text
+
+type LazyText = TL.Text
+
+type TextBuilder = TB.Builder
+
+type ShortText = TS.ShortText
+
+type ByteString = BS.ByteString
+
+type LazyByteString = BSL.ByteString
+
+type ByteStringBuilder = BSB.Builder
+
+type ShortByteString = BSS.ShortByteString
diff --git a/test/Data/Convertible/Utf8Spec.hs b/test/Data/Convertible/Utf8Spec.hs
--- a/test/Data/Convertible/Utf8Spec.hs
+++ b/test/Data/Convertible/Utf8Spec.hs
@@ -2,6 +2,7 @@
 
 import           Codec.Text.Detect     (detectEncodingName)
 import           Data.Convertible.Utf8
+import           Data.Convertible.Utf8.Internal
 import           Test.Hspec
 
 spec :: Spec
diff --git a/utf8-conversions.cabal b/utf8-conversions.cabal
--- a/utf8-conversions.cabal
+++ b/utf8-conversions.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 675427925a81242ebfb81917697f089a33fec8fc6ccfd83ddf2cd981f8bd4dfe
+-- hash: c125a7d35e1048a0b9054a06f2a487647a26869cb5e181121e0eb78fc5ddf431
 
 name:           utf8-conversions
-version:        0.1.0.3
+version:        0.1.0.4
 synopsis:       A string conversion library that assumes utf8
 description:    Please see the README on GitHub at <https://github.com/chemirea/utf8-conversions#readme>
 category:       Data, Codec
@@ -30,6 +30,7 @@
 library
   exposed-modules:
       Data.Convertible.Utf8
+      Data.Convertible.Utf8.Internal
   other-modules:
       Paths_utf8_conversions
   hs-source-dirs:
