title: X does not implement Y (... method has a pointer receiver)
body: <p>There are already several Q&amp;As on this "<em>X does not implement Y (... method has a pointer receiver)</em>" thing, but to me, they seems to be talking about different things, and not applying to my specific case.</p>
  
  <p>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?</p>
  
  <p>I.e., how to avoid the problem, and if it occurs, what are the possibilities? Thx.</p>