This builds on top of #482 after a conversation about the confusion around the Transform.t data structure and how it relates to ppxlib applying various preprocessors to OCaml code.
This PR changes the Transform.t from a record to a polymorphic variant with the intention to make it clearer how the driver works in terms of transforming code. Most notably, what was once accessing fields is now a lookup in a list where the list is always in the order of 10 elements (max).
As a newcomer to ppxlib, I find this approach a little easier to understand as there are more types and names to help guide a new developer, and the various kinds of passes are grouped under distinct types (rather than a big record where everything is optional).
This builds on top of #482 after a conversation about the confusion around the
Transform.t
data structure and how it relates to ppxlib applying various preprocessors to OCaml code.This PR changes the
Transform.t
from a record to a polymorphic variant with the intention to make it clearer how the driver works in terms of transforming code. Most notably, what was once accessing fields is now a lookup in a list where the list is always in the order of 10 elements (max).As a newcomer to ppxlib, I find this approach a little easier to understand as there are more types and names to help guide a new developer, and the various kinds of passes are grouped under distinct types (rather than a big record where everything is optional).