diff --git a/src/Data/Validity/Text.hs b/src/Data/Validity/Text.hs
--- a/src/Data/Validity/Text.hs
+++ b/src/Data/Validity/Text.hs
@@ -77,3 +77,9 @@
 
 validateTextSingleLine :: ST.Text -> Validation
 validateTextSingleLine = validateStringSingleLine . ST.unpack
+
+decorateText :: ST.Text -> (Char -> Validation) -> Validation
+decorateText t func = mconcat $
+  flip map (zip [0 ..] (ST.unpack t)) $ \(i, c) ->
+    decorate (unwords ["The character at index", show (i :: Integer), "in the text"]) $
+      func c
diff --git a/validity-text.cabal b/validity-text.cabal
--- a/validity-text.cabal
+++ b/validity-text.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.4.
+-- This file has been generated from package.yaml by hpack version 0.34.6.
 --
 -- see: https://github.com/sol/hpack
 
 name:           validity-text
-version:        0.3.1.2
+version:        0.3.1.3
 synopsis:       Validity instances for text
 category:       Web
 homepage:       https://github.com/NorfairKing/validity#readme
