title: dog does not implement pets (wrong type for speak method)
body: <p>can't find the problem by my self ! thank you for your help, when i pass the empty struct to getPets() which is an interface receiver i was expecting an empty reference of the struct returns, but instead i got this error **dog does not implement pets (wrong type for speak method) ** that i can't  figure out it been 6 hours now that i am triyng </p>
  
  <pre><code>
  import "fmt"
  
  type pets interface {
      speak(name []byte) dog
  }
  
  type dog struct {
      dogs []string
      name string
  }
  
  type cat struct {
      cats []string
      name string
  }
  
  func (d *dog) speak(name []byte) *dog {
      (*d).dogs = append(d.dogs, string(name))
      return d
  }
  
  // func (c *cat) speak(name []byte) *cat {
  //  (*c).cats = append(c.cats, string(name))
  //  return c
  // }
  
  func getPets(f pets) {
      fmt.Println(f.speak([]byte("hello")))
  }
  
  func main() {
      d := dog{}
      getPets(d)
  </code></pre>