diff --git a/NoTrace.cabal b/NoTrace.cabal
--- a/NoTrace.cabal
+++ b/NoTrace.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                NoTrace
-version:             0.2.0.1
+version:             0.3.0.0
 synopsis:            Remove all the functions come from Debug.Trace after debugging
 description:         This module introduce functions with identical types with functions in the Debug.Trace.
                      When completing the debug process,
@@ -25,12 +25,12 @@
   exposed-modules:     Debug.NoTrace
   -- other-modules:       
   hs-source-dirs:      src
-  build-depends:       base >=4.5 && <4.7
+  build-depends:       base >=4.7 && <4.9
 
 Test-Suite main
   type:                exitcode-stdio-1.0
   main-is:             Main.hs
   hs-source-dirs:      test
                      , src
-  build-depends:       base >=4.5 && <4.7
+  build-depends:       base >=4.5 && <4.9
   ghc-options:         -O2
diff --git a/src/Debug/NoTrace.hs b/src/Debug/NoTrace.hs
--- a/src/Debug/NoTrace.hs
+++ b/src/Debug/NoTrace.hs
@@ -30,23 +30,41 @@
 -------------------------------------------------------------------------------
 module Debug.NoTrace where
 
-putTraceMsg :: String -> IO ()
-putTraceMsg _ = return ()
-
 trace :: String -> a -> a
 trace _ = id
 
+traceId :: String -> String
+traceId = id
+
 traceShow :: Show a => a -> b -> b
 traceShow _ = id
 
+traceShowId :: Show a => a -> a
+traceShowId = id
+
 traceStack :: String -> a -> a
 traceStack _ = id
 
 traceIO :: String -> IO ()
 traceIO _ = return ()
 
+traceM :: Monad m => String -> m ()
+traceM _ = return ()
+
+traceShowM :: (Show a, Monad m) => a -> m ()
+traceShowM _ = return ()
+
+putTraceMsg :: String -> IO ()
+putTraceMsg _ = return ()
+
 traceEvent :: String -> a -> a
 traceEvent _ = id
 
 traceEventIO :: String -> IO ()
 traceEventIO _ = return ()
+
+traceMarker :: String -> a -> a
+traceMarker _ = id
+
+traceMarkerIO :: String -> IO ()
+traceMarkerIO _ = return ()
