The second issue of #28 is that the ppx is emitting a polymorphic comparison = between string options to detect which mutant we are running. After open Core= is however redefined to an integer comparison function int -> int -> bool, thus leading to a type error in the generated code.
This PR therefore changes the mutation strategy by emitting a helper function __is_mutaml_mutant__ in the preamble, which just relies on String.equal, available in both Stdlib and Core.
The meat is in the first commit, updating the ppx.
The second commit adds a regression cram test.
The third commit just updates and adjusts the existing cram tests.
The second issue of #28 is that the ppx is emitting a polymorphic comparison
=
betweenstring option
s to detect which mutant we are running. Afteropen Core
=
is however redefined to an integer comparison functionint -> int -> bool
, thus leading to a type error in the generated code.This PR therefore changes the mutation strategy by emitting a helper function
__is_mutaml_mutant__
in the preamble, which just relies onString.equal
, available in bothStdlib
andCore
.The meat is in the first commit, updating the ppx. The second commit adds a regression cram test. The third commit just updates and adjusts the existing cram tests.