When the glorious impl Trait feature shipped, a few objections to it arises because of misunderstand of it.
A review to the current sections in the 2018 editon of the book shows even the book itself have misunderstanding on this feature. One major issue is that the text seem to imply the following
pub fn notify(item1: impl Summary, item2: impl Summary) {
pub fn notify<T: Summary>(item1: T, item2: T) {
are equivlent. Of cause they are not: the later requires item1 and item2 have the same type and the former does not.
For this reason, I reviewed the chapter 10-2 and make my changes here
Please give me feedbacks and correct me before I make a pull request to the book.
Thank you.