Like several issues (#124, #262, #305, #339) have pointed before, the chapter “Subtyping and Variance” can easily become confusing. I have experienced that as well, and I have noticed that this was partially caused by T used both in &'a T and as the &'a T itself in &mut &'a T (thus written &mut T).
To make things clearer, this PR renames the generic type parameter of the function R, since it is intended to be a reference in the examples. &'a T stays unchanged, but R is used when &'a T itself is intended; for instance, the more generic variant of &mut &'a T is thus &mut R.
I have also slightly changed some explanations to clarify them and take into account this new naming.
Like several issues (#124, #262, #305, #339) have pointed before, the chapter “Subtyping and Variance” can easily become confusing. I have experienced that as well, and I have noticed that this was partially caused by
T
used both in&'a T
and as the&'a T
itself in&mut &'a T
(thus written&mut T
).To make things clearer, this PR renames the generic type parameter of the function
R
, since it is intended to be a reference in the examples.&'a T
stays unchanged, butR
is used when&'a T
itself is intended; for instance, the more generic variant of&mut &'a T
is thus&mut R
.I have also slightly changed some explanations to clarify them and take into account this new naming.