This impacts interop tools, but also Rust frameworks like Bevy.
Specifically:
- it is easy for blanket impls to overlap, cause other code to be ambiguous, or other impls to overlap
- it is hard to create mutually exclusive blanket impls for categories of types, but there are workarounds
- specialisation isn't stable, and the workarounds aren't ergonomic
- there is a lot of boilerplate code involved, particularly in some workarounds
Background:
This impacts interop tools, but also Rust frameworks like Bevy.
Specifically:
Background: