title: Multiple receivers on a single method
body: <p>Is it possible to have multiple receivers on a single function? In other words, a single function can belong to two or more <code>struct</code>s?</p>
  <p>Say I have</p>
  <pre><code>type Struct1 struct {
    foo.Client
  }
  
  func CreateClient() struct1 {
    return struct1{
      ClientID: cId,
      // ...
    }
  }
  
  func (s *Struct1) MyFunc( // ... ) {}
  </code></pre>
  <p>But I also want to be able to associate <code>MyFunc</code> with another <code>struct</code>  (different package):</p>
  <pre><code>type Struct2 struct {
    lgr log.logger
  }
  
  func NewStruct2 (l *log.logger) (*Struct2, err) {
    return &amp;Struct2{mylog: *l}, nil
  }
  </code></pre>
  <p>So what I want to actually have is:</p>
  <pre><code>func (s1 *Struct1, s2 *Struct2) MyFunc( // ... ) {}
  </code></pre>