В Scala Matryoshka, есть ли способ выполнить рекурсивное преобразование для типа, который не меняет форму? - PullRequest
0 голосов
/ 21 ноября 2018

Например, у меня есть AST вроде:

sealed trait FilterF[A]
final case class NotF[A](filter: A) extends FilterF[A]
final case class EqF[A](field: String, value: Int) extends FilterF[A]

Я хочу взять выражение типа NotF(NotF(EqF("name", "mrunleaded"))) и уменьшить его до EqF("name", "mrunleaded")

matryoshka.ana, кажется, хочетCoalgebra, который A => F[A] и matryoshka.cata хочет Algebra, который F[A] => A, но я думаю, что мне нужно перейти от Fix[FilterF] => Fix[FilterF]

...