Hi Dan !

Hopefully I didn't mess up your code too much. I also put in a new Maybe monad (no where near as interesting as your examples), hopefully I can do more later.