Yes, it still works, but I think you are missing my point. My goal would be to have many different given Converter[A,B]
implementations available and very few, carefully chosen Conversion[A,B]
implementations. Implicit conversions still have their place and are occasionally necessary. I don’t what a huge plethora of implicit conversions available as soon as someone enables the feature flag. Type safety would go completely out the window. I want developers to feel free to provide Converter[A,B]
implementations willy-nilly, without fear that these conversions will start happening implicitly as soon as someone enables the feature flag.
Of course, I can’t prevent someone from shooting themselves in the face by doing this:
given[A,B](given C: Converter[A,B]): Conversion[A,B] = C(_)
But I think that requires considerably more malice of forethought than simply enabling a language feature flag.