title: ScalaCheck can not cast boolean to Prop instance
body: <p>I have the following property:</p>
  
  <pre><code>import org.scalacheck.Prop.propBoolean
  
  def elementsAreReversed(list: List[Int], reversed: List[Int]): Boolean =
    if (list.isEmpty) true else {
      val lastIdx = list.size - 1
      list.zipWithIndex.forall { case (element, index) =&gt;
        element == reversed(lastIdx - index)
      }
    }
  
  val propReversed = Prop.forAll { list: List[Int] =&gt;
    val reversed = list.reverse
  
    if (list.isEmpty)
      list == reversed
    else {
      val hasSameSize    = reversed.size == list.size
      val hasAllElements = list.forall(reversed.contains)
  
      // It works until  I add a label here:
      hasSameSize &amp;&amp; hasAllElements &amp;&amp; elementsAreReversed(list, reversed)
    }
  </code></pre>
  
  <p>If a add a label it breaks:</p>
  
  <pre><code>    hasSameSize :| " a label which doesn't let the code compile" &amp;&amp;
      hasAllElements &amp;&amp;
      elementsAreReversed(list, reversed)
  </code></pre>
  
  <p>Compiler gives me the following:</p>
  
  <p>Error:(47, 36) No implicit view available from Any => org.scalacheck.Prop.
  val propReversed = Prop.forAll { list: List[Int] =></p>
  
  <p>Error:(47, 36) not enough arguments for method forAll:</p>
  
  <p>(implicit p: Any => org.scalacheck.Prop, implicit a1: org.scalacheck.Arbitrary[List[Int]], implicit s1: org.scalacheck.Shrink[List[Int]], implicit pp1: List[Int] =>
  org.scalacheck.util.Pretty) org.scalacheck.Prop. Unspecified value parameters
  p, a1, s1...</p>
  
  <p>val propReversed = Prop.forAll { list: List[Int] =></p>
  
  <p>I'm using ScalaCheck version <code>1.13.4</code></p>