Closed
Description
You're currently allowed to implement stronger guarantees in the impl
of a trait, like adding regions to borrowed pointers. It would be very useful to be able to do the same thing with users of the trait, as in requiring a stricter version of the trait. At the moment you can't write generic code that requires the stronger guarantee provided by a subset of the implementations.
A good example of this is the each
method for iterators, since some containers or generators don't actually store the values they're returning references to. For example, SmallIntMap
doesn't actually store the keys.