In Part 2 we proceeded to closely mirror our domain logic using Haskell types and typeclasses
In part two, we move on into the Haskell realm where we can build up true domain logic.