module Debug where import System.IO.Unsafe (unsafePerformIO) debugToFile :: String -> a -> a debugToFile :: String -> a -> a debugToFile String s a expr = IO a -> a forall a. IO a -> a unsafePerformIO (IO a -> a) -> IO a -> a forall a b. (a -> b) -> a -> b $ do String -> String -> IO () appendFile String "log.txt" String s a -> IO a forall (m :: * -> *) a. Monad m => a -> m a return a expr