diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,7 @@
+0.10.0
+
+    * Update `singletons` dependency.
+
 0.9.0
 
     * Remove upper-bounds of dependencies.
diff --git a/src/Network/Wai/Predicate/MediaType.hs b/src/Network/Wai/Predicate/MediaType.hs
--- a/src/Network/Wai/Predicate/MediaType.hs
+++ b/src/Network/Wai/Predicate/MediaType.hs
@@ -1,13 +1,19 @@
+{-# LANGUAGE CPP            #-}
 {-# LANGUAGE DataKinds      #-}
 {-# LANGUAGE KindSignatures #-}
 
 module Network.Wai.Predicate.MediaType where
 
 import Data.ByteString (ByteString)
-import Data.ByteString.Char8 (pack)
 import Data.Singletons
 import Data.Singletons.TypeLits
 
+#if MIN_VERSION_singletons(2,3,0)
+import Data.Text.Encoding (encodeUtf8)
+#else
+import Data.ByteString.Char8 (pack)
+#endif
+
 data Media (t :: Symbol) (s :: Symbol) = Media
     { rawType      :: !ByteString
     , rawSubTypes  :: !ByteString
@@ -15,14 +21,22 @@
     , mediaParams  :: ![(ByteString, ByteString)]
     } deriving (Eq, Show)
 
-mediaType :: SingI t => Media t s -> ByteString
+mediaType :: KnownSymbol t => Media t s -> ByteString
 mediaType m = withSing (f m)
   where
     f :: Media t s -> Sing t -> ByteString
+#if MIN_VERSION_singletons(2,3,0)
+    f _ t = encodeUtf8 (fromSing t)
+#else
     f _ t = pack (fromSing t)
+#endif
 
-mediaSubType :: SingI s => Media t s -> ByteString
+mediaSubType :: KnownSymbol s => Media t s -> ByteString
 mediaSubType m = withSing (f m)
   where
     f :: Media t s -> Sing s -> ByteString
+#if MIN_VERSION_singletons(2,3,0)
+    f _ s = encodeUtf8 (fromSing s)
+#else
     f _ s = pack (fromSing s)
+#endif
diff --git a/wai-predicates.cabal b/wai-predicates.cabal
--- a/wai-predicates.cabal
+++ b/wai-predicates.cabal
@@ -1,5 +1,5 @@
 name:                wai-predicates
-version:             0.9.0
+version:             0.10.0
 synopsis:            WAI request predicates
 license:             OtherLicense
 license-file:        LICENSE
@@ -59,6 +59,7 @@
       , case-insensitive      >= 1.1
       , http-types            >= 0.8
       , singletons            >= 0.10
+      , text                  >= 1.2
       , transformers          >= 0.3
       , vault                 >= 0.3
       , vector                >= 0.10
