OCaml data constructors are not first class funs

Why not is anyone's guess. The language spec is lazy or something.
OCaml indent algo doesn't understand nested match

To be precise, it associates every pattern case with the innermost match, even
if the indent level has decreased between the start of that innermost match and
the current case. Need to parenthesize inner matches to avoid this.

Why am I using this language?
Fixed a ton of compiler warnings

Mostly due to lack of { .. ;_ } in record binding