diff --git a/System/IO/UTF8.hs b/System/IO/UTF8.hs
--- a/System/IO/UTF8.hs
+++ b/System/IO/UTF8.hs
@@ -22,6 +22,7 @@
     , readFile
     , writeFile
     , appendFile
+    , interact
     , getContents
     , hGetLine
     , hGetContents
@@ -120,3 +121,5 @@
 getContents :: IO String
 getContents = liftM decodeString IO.getContents
 
+interact :: (String -> String) -> IO ()
+interact f = IO.interact (encodeString . f . decodeString)
diff --git a/utf8-string.cabal b/utf8-string.cabal
--- a/utf8-string.cabal
+++ b/utf8-string.cabal
@@ -1,5 +1,5 @@
 Name:               utf8-string
-Version:            0.3.2
+Version:            0.3.3
 Author:             Eric Mertens
 Maintainer:         emertens@galois.com
 License:            BSD3
