Drawbacks of the orphan rule workaround?
I have recently stumbled upon the following gem, mentioned in a thread elsewhere about the possible relaxation of orphan rules:
https://docs.rs/vpsearch/latest/vpsearch/trait.MetricSpace.html
In other words, just add an otherwise unused generic parameter to your trait, and third-party crates will be able to implement it for the structs of other third party crates. The generic parameter (which the implementing crate has to provide) makes the implementation unique and ties it to the implementing crate, exempting it from the orphan rule.
This is a simple and easy workaround, so I can't help but wonder... why aren't we seeing it more? I figured there'd already be a macro to add this parameter to traits, and libraries like serde could definitely benefit from its usage. Is there a drawback to it which I am not aware of?