Monad library

I have started a monad + applicative library for Ocaml with some standard transformers. I have also supplied my own lazy list library with what I believe is much better laziness compared to BatLazyList. This is not necessarily an improvement, since the extra laziness comes with tradeoffs. Note that applicative functions such as lift2 are generated, by default, from a base applicative interface, which I believe is generally better for performance.

Cheers!