matryoshka
matryoshka copied to clipboard
Generalized recursion schemes and traversals for Scala.
Hi, Is there any possibility to publish matryoshka-core artifact for scala 2.13? Can I help with that? CC: @djspiewak Best regards, Karol
`repeatedly` returns one more time a function value (instead of being a method). also added `ginterpret`
This adds some functionality, but also generalizes things pretty extremely. I took the approach suggested by @wemrysi and defined a class for the most generic {co}algebras, then used type alias...
Hi! I wanted to let you know about a subtle but pretty fundamental bug we've found in Haskell's recursion-schemes library. Since Matryoshka uses the same "recursion-schemes from comonads" approach as...
implicitly[Recursive[Fix[Option]]] ambiguity between recursiveTRecursive and birecursiveTBirecursive
# 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`,...
E.g. - `Birecursive#iso` should pass the `monocle.Iso` laws. - `x.ana(f).cata(g) ≟ x.hylo(g, f)` (for some generic `f` and `g`) - `x.cata(g) ≟ x.hylo(g, _.project)` and its dual - either make...
Hi, I saw the talk from Greg Pfeil and found the park on mutual recursion really appealing. I created a simple example of numeric and boolean operations that I would...
For instances on refined types. E.g. `Birecursive.Aux[Int With NonNegative, Option]`