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