Most Haskell tutorials on the web use a style of teaching akin to language reference manuals. They show you the syntax of the language, a few language constructs, then tell you to create a few simple functions at the interactive prompt. The "hard stuff" of how to write a functioning, useful program is left to the end, or omitted entirely. This tutorial takes a different approach.
The mathematical concept of a "scheme" seems to pop up everywhere, but it's hard to get a good grasp on what a scheme actually is. Any time you might ask someone what a scheme is in passing, there never seems to be enough time to explain it. On the other hand, if someone finds the time to internaliz