module Language.Haskell.FreeTheorems.Variations.PolySeq.Debug 
    (trace_ignore, trace_toShell,
     traceM_ignore, traceM_toShell) where

import System.IO.Unsafe

trace_ignore :: String -> a -> a
trace_ignore str a = a

trace_toShell str a = if unsafePerformIO (putStr (str++"\n")) == () then a else a

traceM_ignore :: (Monad m) => String -> m ()
traceM_ignore str = return ()

traceM_toShell :: (Monad m) => String -> m ()
traceM_toShell str = if unsafePerformIO (putStr (str++"\n")) == () then return () else return ()