title: How to use playframework 2.3 with specs2 2.4 instead of specs2 2.3.x
body: <p>Recently, <a href="https://etorreborre.github.io/specs2">specs2</a> was updated to version 2.4, which uses <a href="https://scalaz.github.io/scalaz/">scalaz</a> 7.1 instead of 7.0.x now. Once I update my specs2 dependency in my play! 2.3 project to use version 2.4, all tests fail with the following exception:</p>
  
  <pre><code> [error] Uncaught exception when running ...Spec: java.lang.In
   compatibleClassChangeError: Found class scalaz.syntax.FunctorOps, but interface
   was expected
   sbt.ForkMain$ForkError: Found class scalaz.syntax.FunctorOps, but interface was
   expected
      at org.specs2.specification.SpecificationStructure$.createSpecificationEither(BaseSpecification.scala:119)
      at org.specs2.runner.SbtRunner.org$specs2$runner$SbtRunner$$specificationRun(SbtRunner.scala:73)
      at org.specs2.runner.SbtRunner$$anonfun$newTask$1$$anon$5.execute(SbtRunner.scala:59)
      at sbt.ForkMain$Run$2.call(ForkMain.java:294)
      at sbt.ForkMain$Run$2.call(ForkMain.java:284)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)
  </code></pre>
  
  <p>Nobody seems to have had this error before. At least I was unable to find it in the issue tracking systems of the specs2 and play project. </p>