Add two ocaml implementations

One non-solution following a classic continuation-passing-style encoding.
One solution extending the previous one with some tricks.

Namely:
− a parsing tricks allowing definition of "()" as a value constructor only
− mixing CPS and GADTs to give the appropriate type to ()