Given these two trait definitions, why does the call site for the second one require explicit annotation more often?trait Producer1 { type Out; fn make(&self) -> Self::Out; } trait Producer2<O> { fn make(&self) -> O; }