Best practices for large API changes?

FYI, work in progress is here:

Note that my changes to the ppx rewriter aren’t quite baked, but it does work.