@maltimore having learned some Haskell, I think these slides, at least, are a tad misleading. All of the tutorials and things I saw when I was learning Haskell the first time presented the IO monad as the way to print to the console, which becomes super frustrating when you just want to debug by printing the value of something during execution without it being "in" an IO monad already. I found Debug.Trace eventually, but it wasn't super obvious