title: Expose protected member as public with self tyes
body: <p>I have a trait that representing some module that exposes some public method (think of a service):</p>
  
  <pre><code>trait X { 
    def exposeMe: AService = ...
    def keepMeHidden: BService = ...
  }
  </code></pre>
  
  <p>Then, I have a <code>Y</code> module that requires services from <code>X</code>. Clients of <code>Y</code> also need one service from <code>X</code>. But I don't want them to depend on whole <code>X</code>, just on this one service. I would like to like "export" that one service to be public.</p>
  
  <pre><code>trait Y { this: X =&gt; 
    def exposeMe2: AService = exposeMe
  }
  </code></pre>
  
  <p>This works, but is there a way to keep the method name the same?</p>