The std documentation for 1.84 states that FromResidual is a nightly-only experimental API.
However, compiling (1.83 stable) an erroneous code using the '?' and incompatible error types, I get this output:
`?` couldn't convert the error to `...`
the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
the trait `FromResidual<...>...
In my workspace FromResidual is marked #[unstable(feature = "try_trait_v2", issue = "84277")]
Unstable traits can still be used internally by language features and by the standard library even on stable. In this case FromResidual is used internally by the ? operator and is implemented by the standard library for types like Result,Option and ControlFlow.