The other significant element omitted is a discussion of monads, and therefore of I/O. It
seems strange to write a tutorial that does not even start with a "Hello World!"
program, but thinking in a functional style requires a number of shifts. While that "Hello
World!" is quite simple, it also involves the mini "pseudo-imperative" world of monads.
It would be easy for a beginner to be lulled in by the pseudo-imperative style of I/O, and
miss what is really going on. Swimming is best learned by getting in the water.