Pātuhitia tēnei: The Haskell school of expression : learning functional programming through multimedia / Paul Hudak.