I have to admit that I am a bit torn about using `pure`. On the one hand, if you actually have a pure value, it feels pretty intuitive to me. But what about
pure (putStrLn "Hi")
`putStrLn "Hi"` is not a pure value... Or is there another way to interpret the word pure in this context?