title: Is there a way to define multiple implicit evidences via a single HList?
body: <p>I have a piece of code, conceptually similar to the following one:</p>
  
  <pre><code>//library code
  trait Support[K, V]
  
  def partialHandler[K, V](key: K, value: V)(implicit ev: Support[K, V]) = ???
  
  //user code
  implicit val intIntSupport = new Support[Int, Int] {}
  implicit val intStringSupport = new Support[Int, String] {}
  ...
  
  partialHandler(1, "foo)
  partialHandler(1, 1)
  </code></pre>
  
  <p>I wonder if there is a way to let users of this library define supported <code>(K, V)</code> types more elegantly, e.g.:</p>
  
  <pre><code>val supportedTypes = new Support[Int, Int] {} :: new Support[Int, String] {} :: HNil
  </code></pre>
  
  <p>(In essence, I'm looking for an implicit conversion from pretty much unknown HList to <code>Support[K, V]</code>. This doesn't look doable, but maybe I'm missing something.)</p>