title: Transitive LUB?
body: <p>What needs to be changed in this snippet that it compiles?</p>
  
  <pre><code>import shapeless._
  import LUBConstraint._
  import ops.hlist.Prepend
  
  class Foo[L &lt;: HList: &lt;&lt;:[Int]#λ](val l: L) {
    def ++[H &lt;: HList: &lt;&lt;:[Int]#λ](h: H)(implicit prepend: Prepend[L, H]) = {
      new Foo(l ::: h)
    }
  }
  </code></pre>
  
  <p>Currently:</p>
  
  <pre><code>could not find implicit value for evidence parameter of type shapeless.LUBConstraint[prepend.Out,Int]
  </code></pre>