External Publication
Visit Post

Too strict orphan rules E0117

Rust Internals [Unofficial] May 5, 2026
Source

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

Loading comments...