Orphan rule is so annoying
Can someone explain why is it necessary? In Swift, a struct can be implemented from anywhere, why is Orphan rule necessary here in Rust?
Is there any other way to implement/derive a trait for a external struct that is better than copy the code around and implement From/Into?