diff --git a/Web/Routes/Quasi/Classes.hs b/Web/Routes/Quasi/Classes.hs
--- a/Web/Routes/Quasi/Classes.hs
+++ b/Web/Routes/Quasi/Classes.hs
@@ -7,6 +7,8 @@
     ) where
 
 import Data.Int (Int64)
+import qualified Data.Text as S
+import qualified Data.Text.Lazy as L
 
 class SinglePiece s where
     fromSinglePiece :: String -> Either String s
@@ -14,6 +16,12 @@
 instance SinglePiece String where
     fromSinglePiece = Right
     toSinglePiece = id
+instance SinglePiece S.Text where
+    fromSinglePiece = Right . S.pack
+    toSinglePiece = S.unpack
+instance SinglePiece L.Text where
+    fromSinglePiece = Right . L.pack
+    toSinglePiece = L.unpack
 instance SinglePiece Integer where
     fromSinglePiece s = case reads s of
                             (i, _):_ -> Right i
@@ -37,3 +45,9 @@
     fromMultiPiece = Right
     toMultiPiece = id
 type Strings = [String]
+instance MultiPiece [S.Text] where
+    fromMultiPiece = Right . map S.pack
+    toMultiPiece = map S.unpack
+instance MultiPiece [L.Text] where
+    fromMultiPiece = Right . map L.pack
+    toMultiPiece = map L.unpack
diff --git a/web-routes-quasi.cabal b/web-routes-quasi.cabal
--- a/web-routes-quasi.cabal
+++ b/web-routes-quasi.cabal
@@ -1,5 +1,5 @@
 name:            web-routes-quasi
-version:         0.6.1.1
+version:         0.6.1.2
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -16,7 +16,9 @@
   default: False
 
 library
-    build-depends:   base >= 4 && < 5, template-haskell >= 2.4 && < 2.6
+    build-depends:   base             >= 4       && < 5
+                   , template-haskell >= 2.4     && < 2.6
+                   , text             >= 0.5     && < 0.11
     exposed-modules: Web.Routes.Quasi
                      Web.Routes.Quasi.Classes
                      Web.Routes.Quasi.Parse
