I understand the reasons why we can't have a fully general
impl PartialEq<Option<RHS>> for Option<LHS> where LHS: PartialEq<RHS>.
But is there some specific reason we can't have the more specific
impl PartialEq<Option<&str>> for Option<String> and vice versa?
Would even that narrow impl break backwards compatibility?
(Or break too many existing programs even if type inference stability rules allow us to make that change?)
Related: is there some fundamental reason we can't
Option<String> against a pattern like
Some("foo"), using a similar mechanism?
Not sure about the former, but I don't think there's a fundamental reason we can't have the latter
Apart from not having any such mechanism
It might interact some with inference in corner cases