title: How can I use cartesian product |@| with latest versions of Cats?
body: <p>I've migrated some code using cats 0.2 to cats 0.6, and my code is not wroking anymore : </p>
  
  <pre><code>import cats.data.Validated
  import cats.std.all._
  
  val valid1: Validated[List[String], Int] = valid(1)
  val valid2: Validated[List[String], Int] = valid(2)
  (valid1 |@| valid2).map{_+_}
  </code></pre>
  
  <p>Compiler says : </p>
  
  <pre><code>Error:(48, 6) value |@| is not a member of 
  
  cats.data.Validated[List[String],Int]
  (valid1 |@| valid2).map{_+_}
      ^
  </code></pre>
  
  <p>I did not find anything in the documentation regarding this, should I had an import or declare an implicit or something?</p>
  
  <p>I've managed to use <code>product</code> instead of <code>|@|</code> but it's not as convenient as it produces nested tuples. Let's say I have 4 validated to combine : </p>
  
  <pre><code>  (valid1 product valid2 product valid3 product valid4)
      .map{case (((v1, v2), v3), v4) =&gt; v1 + v2 + v3 + v4}
  </code></pre>
  
  <p>Thanks </p>