Thanks for the write up! In the beginning you mention that you ran into some bugs in the Python version that would have been caught by the Haskell type checker. Can you go into more detail about what those bugs were?
Also, a compiler refuses to compile your code if you make a typo in a field name.
https://www.reddit.com/r/programming/comments/5x3hdd/channab...