Too strict orphan rules E0117
Rust Internals [Unofficial]
May 5, 2026
There are also concerns related to backwards compatibility and semver. There are some things that Option<T> could do in a backwards-compatible way, thanks to the orphan rules, which a #[fundamental] type like Box<T> can’t. AFAIK the sole extra power for non-fundamental stuff — setting aside whatever reasoning goes into unsafe code — is the ability to add new blanket impls of existing non-#[fundamental] traits for existing non-#[fundamental] types in a nonbreaking change, but I could be forgetting something.
Discussion in the ATmosphere