There are already several Q&As on this "*X does not implement Y (... method has a pointer receiver)*" thing, but to me, they seems to be talking about different things, and not applying to my specific case.

So, instead of making the question very specific, I'm making it broad and abstract -- Seems like there are several different cases that can make this error happen, can someone summary it up please?

I.e., how to avoid the problem, and if it occurs, what are the possibilities? Thx.