title: How is the <> method resolved on a tuple by Slick
body: <p><a href="https://stackoverflow.com/questions/35840626/what-does-the-operator-do-in-slick/35840836?noredirect=1#comment59391960_35840836">Linked from this question</a></p>
  
  <p>I came across Slick's documentation and found it mandates a <code>def *</code> method in the definition of a table to get a mapped projection. 
  So the line looks like this </p>
  
  <pre><code>def * = (name, id.?).&lt;&gt;(User.tupled,User.unapply)
  </code></pre>
  
  <p><a href="http://slick.typesafe.com/doc/3.1.1/schemas.html#mapped-tables" rel="nofollow noreferrer">Slick example here</a></p>
  
  <p>I see the <code>&lt;&gt;</code> method is invoked on a <code>tuple</code> - in this case a <code>Tuple2</code>. The method is defined on the case class <code>ShapedValue</code> in Slick's code. How do I find out the implicit method that is doing the lookup?</p>
  
  <p>Here are my imports:</p>
  
  <pre><code>import scala.concurrent.Await
  import scala.concurrent.ExecutionContext.Implicits.global
  import scala.concurrent.duration.Duration
  import slick.driver.H2Driver.api._
  import slick.lifted.ShapedValue
  import slick.lifted.ProvenShape
  </code></pre>