tons of work on ocaml wrapping, separated interface and impl compilation into separate phases, package name inference, etc