I can't answer your direction on Dick Wall's post, but to briefly comment on Scala for comprehensions:
- They desugar into map/flatMap and filter if you use the for filter.
- Martin Odersky himself explains for comprehensions including the desugar process in his part of the Reactive programming course on Coursera. You can watch the video lectures online for free and I believe still do the programming exercises and get automated scoring. They are quite fun.
- Scala's for comprehensions are extremely similar and almost surely inherited from Haskell's do notation. Haskell's "do" notation simply expands into flatMap aka bind aka "(>>=)" calls in Haskell for Monad types.