Symptoms
cata and other recursion patterns unavailable for Fix and related types.
scalaVersion := "2.11.8"
"com.slamdata" %% "matryoshka-core" % "0.16.4",
Causes
Ambiguity between recursiveTRecursive and birecursiveTBirecursive, apparently in top-level package object.
How to reproduce
import matryoshka._
import matryoshka.implicits._
import matryoshka.data.Fix
implicitly[Recursive[Fix[Option]]]
<console>:19: error: ambiguous implicit values:
both method recursiveTRecursive in package matryoshka of type [T[_[_]], F[_]](implicit evidence$81: matryoshka.RecursiveT[T])matryoshka.Recursive.Aux[T[F],F]
and method birecursiveTBirecursive in package matryoshka of type [T[_[_]], F[_]](implicit evidence$83: matryoshka.BirecursiveT[T])matryoshka.Birecursive.Aux[T[F],F]
match expected type matryoshka.Recursive[matryoshka.data.Fix[Option]]
implicitly[Recursive[Fix[Option]]]
^
Same problem for Mu and Nu.
Workaround
def r(implicit r: BirecursiveT[Fix]) = matryoshka.birecursiveTBirecursive(r)