@@ -54,6 +54,7 @@ module Data.Text
5454 , intersperse
5555 , transpose
5656 , reverse
57+ , replace
5758
5859 -- * Case conversion
5960 -- $case
@@ -388,6 +389,14 @@ reverse :: Text -> Text
388389reverse t = S.reverse (stream t)
389390{-# INLINE reverse #-}
390391
392+-- | /O(m)*O(n)/ Replace every occurrence of one substring with another.
393+replace :: Text -- ^ Text to search for
394+ -> Text -- ^ Replacement text
395+ -> Text -- ^ Input text
396+ -> Text
397+replace s d = intercalate d . split s
398+{-# INLINE replace #-}
399+
391400-- ----------------------------------------------------------------------------
392401-- ** Case conversions (folds)
393402