Haskell For Imperative Programmers - Datatypes