package ocamlmig

  1. Overview
  2. Docs
OCaml source code rewriting tool

Install

dune-project
 Dependency

Authors

Maintainers

Sources

ocamlmig-5.4-20251020.tbz
sha256=cefdf4a018a159ae253786f82208e6b86529f417d77910c5a1875a900502e98c
sha512=a09a06bfb069933fc7ef2ce9fdca9a9b794d9e740e4a1cd7ddfebdf4d886b4ee3b8e00b098068acfb816cd87e0ea87015cfc1b19f198282422151d6c5b6f16cb

doc/README.html

ocamlmig is a command line tool for rewriting ocaml source code with access to scope and type information.

As a simple example of what it can do, let's say an opam-installed library A provides this interface:

val new_name : int -> int

val old_name : int -> int
[@@migrate { repl = Rel.new_name }]

and your repository contains a file b.ml:

let _ = A.old_name 1

then you could do:

$ git diff b.ml
$ ocamlmig migrate -w
$ git diff b.ml
-let _ = A.old_name 1
+let _ = A.new_name 1

Examples of real rewrites:

If that piqued your interest, you can find more information about what ocamlmig does, and using it.

This is work in progress, so many things are only partially implemented, but the existing functionality as is should still be interesting.