This was a very interesting read. Makes me want to try learning Haskell again after failing miserably a few years ago