I'm building a layered application, and I would like to use generic types to be able to test each layer independently of the others. Very generally, (and incorrectly, as lifetimes are omitted) this would look like
trait Layer1 {}
struct RealLayer2<L1: Layer1> {
layer1: &L1,
}