Make sure we don't generate functions whose name matches a keyword, e.g. when doing
type t = If | Then | Else [@@deriving variants]. We suffix such function names with an underscore.
Depend on ppxlib instead of (now deprecated) ppx_core, ppx_driver and ppx_metaquot.
Somewhat surprisingly, the preprocessor didn't reject variant inclusion despite what the documentation says, but instead would consider that they use one rank (??). Also the generated signature didn't match the generated code in that case. Removed completely the support for polymorphic variant inclusion.
iterfunction generated by ppx_variants_conv and ppx_fields_conv allowed one to give function which returned values of arbitrary types as iter function. This feature constraint these functions to return unit.
N.B. the signature generated by the use of
@@deriving variants(resp. fields) in interface already constrained the type to unit.
Update to follow