diff --git a/src/Prelude.hs b/src/Prelude.hs
index 1b8531350914e964efaf3e6fd026b3c942415e27..59ea17210a2071362cbc485f88c0d5e021c2193a 100644
--- a/src/Prelude.hs
+++ b/src/Prelude.hs
@@ -23,6 +23,9 @@ module Prelude
     traceShowId,
     traceM,
     traceShowM,
+    traceIO,
+    traceShowIO,
+    traceShowIdIO,
     undefined,
   )
 where
@@ -83,6 +86,18 @@ traceM = Trace.traceM
 traceShowM :: (Show a, Applicative m) => a -> m ()
 traceShowM = Trace.traceShowM
 
+{-# DEPRECATED traceIO "Partitial Function." #-}
+traceIO :: Control.Monad.IO.Class.MonadIO m => String -> m ()
+traceIO = Control.Monad.IO.Class.liftIO . Trace.traceIO
+
+{-# DEPRECATED traceShowIO "Partitial Function." #-}
+traceShowIO :: (Control.Monad.IO.Class.MonadIO m, Show a) => a -> m ()
+traceShowIO = traceIO . show
+
+{-# DEPRECATED traceShowIdIO "Partitial Function." #-}
+traceShowIdIO :: (Control.Monad.IO.Class.MonadIO m, Show a) => a -> m a
+traceShowIdIO a = traceShowIO a >> return a
+
 intercalate :: Monoid a => a -> [a] -> a
 intercalate _ [] = mempty
 intercalate _ [x] = x