Guide: generics

I don't find this paragraph or the following examples clear at all. I had to read it 20 times, compare both examples, try to decide what the problem is, decide why adding `pub` fixes it.
* What about it doesn't work (apparently the lines where `pub` was added but you can't know that without comparing)?
* The example is really big for you to *not* point out where the errors are
* The trait is in the module. How can it not be found? Why would the scope change?
* Comments detailing the issues would help
* Apparently needing `pub` should be obvious but I don't find it obvious