Renames string calls to a complementary operation:
String.starts_with?↔String.ends_with?String.upcase↔String.downcaseString.trim_leading↔String.trim_trailingString.replace_prefix↔String.replace_suffixString.replace_leading↔String.replace_trailingString.pad_leading↔String.pad_trailingString.first↔String.lastString.graphemes↔String.codepoints:string.uppercase↔:string.lowercase:string.to_upper↔:string.to_lower:string.left↔:string.right:binary.first↔:binary.last
The Erlang :string trim direction is an argument rather than a function name, so it is not included.
String.equivalent?(a, b) also produces Kernel.==(a, b), removing Unicode normalization from the comparison.
Direct, aliased, and imported calls are supported for Elixir and Erlang modules. An alias that resolves to another module does not match. This family is enabled by default and is separate from Mutare.Mutators.StringLiteral, which changes string values rather than calls.