Quick migration guide to uncurried mode for PPX maintainers?

Is there a summary of AST changes and what needs to be done to migrate old PPXs to the v11?

1 Like

There’s no proper write up AFAIK but here are a few resources:

Also check these compiler files for more info about what has changed, and potential utils you can copy to your project to ease the transition:


Thanks, I will look into those!

Also, the workflow that I’m using right now for migration.

So far, the changes I had to make to build examples with the updated ppx can be summarized as follows:

let f = @res.arity(2) (a, b) => a + b // annotate function definitions
let x = @res.uapp f(1, 2)             // annotate function calls

I annotated all the generated function definitions and function calls, and it worked. However, I haven’t fixed the test suit yet and haven’t run any code, so maybe I’ll discover something else.

P.S. In the linked PRs, @res.optional and @res.partial attributes are also mentioned, but I haven’t needed them so far.

1 Like