Ixrec
Ixrec
C++/Java/C#: The closest analogue to traits is interfaces and/or abstract base classes, which must be part of a type's definition, so there's simply no such thing as "orphan impls". Haskell:...
Please comment if I missed anything significant. ----- Mar 2014 - [RFC #19 "Opt-in builtin traits" is posted](https://github.com/rust-lang/rfcs/pull/19) and [accepted](https://github.com/rust-lang/rfcs/pull/19#issuecomment-38627909). This RFC discussed the special case in the coherence rules...
This issue is to gather use cases where the best solution is probably a newtype, but today that newtype is either tedious to implement because many things have to be...
See https://github.com/Ixrec/rust-orphan-rules/issues/1 for more history, but the basic links are: Specialization RFC: https://github.com/rust-lang/rfcs/pull/1210 Most recent blog post on making specialization sound: http://aturon.github.io/2018/04/05/sound-specialization/ This issue is for gathering feedback on whether...
One reasonable response to the "[Serialize is special](https://github.com/Ixrec/rust-orphan-rules/issues/2)" argument is that all of this reasoning is purely theoretical when all the user wanted to do is "put `#[derive(Serialize)]` on `Foo`...
Sometimes, there's an `impl` that probably should exist, and client code probably should not have to provide it via a newtype, but neither the type's crate or the trait's crate...
Sometimes, [newtypes are tedious to implement](https://github.com/Ixrec/rust-orphan-rules/issues/3). There's a proposal for adding "delegation" to Rust which is expected to help with that. Current delegation RFC: https://github.com/rust-lang/rfcs/pull/2393 This issue is for gathering...
The main use case here is binary operator traits. ["Little Orphan Impls"](http://smallcultfollowing.com/babysteps/blog/2015/01/14/little-orphan-impls/) discusses this use case a lot but ends up arguing that ordering should matter, and it does matter...
In other words, solve the [the `diesel-chrono` problem](https://github.com/Ixrec/rust-orphan-rules/issues/7) by making both `diesel` and `chrono` add something like `allowed-orphan-implers = ["diesel-chrono"]` to their Cargo.tomls (the precise mechanism isn't important), and then...
For the [official orphans](https://github.com/Ixrec/rust-orphan-rules/issues/7) problem, you typically want a crate that contains nothing but the official orphan impls. If such a crate can only be used by the root crate,...