例如,我有一个类似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
的{{1}},而A => F[A]
想要一个matryoshka.cata
的{{1}},但是我想我需要来自Algebra