Amend RFC 48

The original definition of public items was based on reachability rather than simply checking whether the item is declared `pub` or not.  The RFC also did not describe how privacy and `impl` definitions are related. 


This is... interesting. At first I was going to write:

For the same reason, it's not clear to me that this should be forbidden. Client code sees traits and their associated items; the typechecker sees the impls. Going with associated types syntax, client code *can* refer to the given type as `fn some_func<T: PubTrait>(arg: T::AssocType)`; the fact that this may resolve to a private type doesn't seem significant, because it's abstract to `some_func`.

*But*, if you write `fn other_func(arg: PubStruct::AssocType)`, that's no longer the case. So I think you're right that this should in fact be forbidden.