Working through Brent Yorgey's lecture series on Haskell