title: Implementing interface in golang gives method has pointer receiver
body: <p>am working in Golang, am trying to use interfaces to agroup a set of structs that are using a similar method. Briefly I have this:</p>
  
  <pre><code>type Person interface {
      BasicInfo() MemberBasicInfo
  }
  
  type MemberBasicInfo struct {
      ID                         uint       
      MemberFirstName            string     
      MemberNickname             string     
      MemberEmail                string    
  }
  </code></pre>
  
  <p>Then, the structs that should work as interfaces:</p>
  
  <pre><code>func (member *Member) BasicInfo() MemberBasicInfo{
      return MemberBasicInfo{
          ID: member.ID,
          ...other mapping here...
      }
  }
  
  func (user *User) BasicInfo() MemberBasicInfo{
      return MemberBasicInfo{
          ID: uint(user.ID),
          ...other mapping here...
      }
  }
  
  cannot use memberData (type Member) as type Member.Person in return argument: Member does not implement Person (BasicInfo method has pointer receiver)
  cannot use memberData (type User) as type Person in return argument: User does not implement Person (BasicInfo method has pointer receiver)
  </code></pre>
  
  <p>What am I missing? or what am I doing wrong?</p>