The Haskell school of expression : learning functional programming through multimedia - Hudak, Paul (Cambridge Univ. Press, 2007)