ocamlmig replace command, for a sed-like rewrites but working on ASTs instead of bytes.ocamlmig check to typecheck the replacement in things like val foo : int [@migrate { repl = bar }]module Old_name : sig end .... [@@migrate { repl = New_name }]. These annotations are only looked for when passing -module-migration, and the replacement is limited to a module path.val x : ... [@@migrate { repl = e }], when inserting e at a use-site of x, in some case we now modify e to avoid shadowing-related issues, and shorten module paths according to the modules opened in that scope.ocamlmig transform rescope -unopen now knows to rename identifiers in all namespaces (module identifiers, type constructors, class identifiers, etc), instead of only values.Correct a failure to use some opam-installed files.
Initial release.