This is what make it difficult to understand the performance profile of a Haskell program. Take a look at the book Real World Haskell for a taste of how ugly it can get.
http://book.realworldhaskell.org/read/profiling-and-optimiza...
Luckily Haskell does give you the ! operator (e.g., !x), which tells the compiler to evaluate the variable.
Ok, this seems a bit better than the spacesuit and bananas metaphor, but we'll have to wait for the future posts to see whether it is really better. He does veer into spacesuit bananaisms (e.g. the ghosts and the hand grenades) but maybe he will explain those metaphors better in the future.
P.S. Spacesuit bananaism is a new term I just coined to refer to people that use thoroughly baffling metaphors to explain already confusing Haskell concepts thus managing to make Haskell even more confusing and ending up with gibberish even the most seasoned Haskell pros cannot grasp. It comes from some guy's attempt to explain monads with a metaphor involving spacesuits and bananas.
Why can't Haskell tutorials speak plainly? I write code, I read mathematics. Each software concept has a linkage to a mathematical concept. I am not a magician to be gibbered at by strange words only understood by the esoteric initiates.
Thanks to _why, I do tend to like comics making programming ideas more clear. I'm not sure how someone who doesn't already know how a Haskell heap works is supposed to get anything out of this, tho. How is "Some presents explode when you open them, others are haunted by ghosts that open other presents when disturbed," going to clear anything up for someone who is lost?
It looks like it's just an introduction to a yet-to-be-written series. Why not wait until the series actually contains some useful information before posting it?
Nice drawings, tho. I'm looking forward to the rest.