Packages

trait Birecursive[T] extends Recursive[T] with Corecursive[T]

A type that is both Recursive and Corecursive.

Linear Supertypes
Corecursive[T], Recursive[T], Based[T], Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Birecursive
  2. Corecursive
  3. Recursive
  4. Based
  5. Serializable
  6. Serializable
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract type Base[A]
    Definition Classes
    Based
  2. type BaseT[A] = Base[A]
    Definition Classes
    Recursive

Abstract Value Members

  1. abstract def embed(t: Base[T])(implicit BF: Functor[Base]): T
    Definition Classes
    Corecursive
  2. abstract def project(t: T)(implicit BF: Functor[Base]): BaseT[T]
    Definition Classes
    Recursive

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def all(t: T)(p: (T) ⇒ slamdata.Predef.Boolean)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean
    Definition Classes
    Recursive
  5. def ana[A](a: A)(f: Coalgebra[Base, A])(implicit BF: Functor[Base]): T
    Definition Classes
    Corecursive
  6. def anaM[M[_], A](a: A)(f: CoalgebraM[M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[T]
    Definition Classes
    Corecursive
  7. def any(t: T)(p: (T) ⇒ slamdata.Predef.Boolean)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean
    Definition Classes
    Recursive
  8. def apo[A](a: A)(f: GCoalgebra[[β$8$]\/[T, β$8$], Base, A])(implicit BF: Functor[Base]): T

    An unfold that can short-circuit certain sections.

    An unfold that can short-circuit certain sections.

    Definition Classes
    BirecursiveCorecursive
  9. def apoM[M[_], A](a: A)(f: GCoalgebraM[[β$5$]\/[T, β$5$], M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[T]
    Definition Classes
    Corecursive
  10. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  11. def attributeTopDown[U, A](t: T, z: A)(f: (A, Base[T]) ⇒ A)(implicit U: Aux[U, [γ$33$]EnvT[A, Base, γ$33$]], BF: Functor[Base]): U

    Attribute a tree via an algebra starting from the root.

    Attribute a tree via an algebra starting from the root.

    Definition Classes
    Recursive
  12. def attributeTopDownM[M[_], U, A](t: T, z: A)(f: (A, Base[T]) ⇒ M[A])(implicit arg0: Monad[M], U: Aux[U, [γ$34$]EnvT[A, Base, γ$34$]], BT: Traverse[Base]): M[U]

    Kleisli variant of attributeTopDown

    Kleisli variant of attributeTopDown

    Definition Classes
    Recursive
  13. def cata[A](t: T)(f: Algebra[Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    Recursive
  14. def cataM[M[_], A](t: T)(f: AlgebraM[M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[A]

    A Kleisli catamorphism.

    A Kleisli catamorphism.

    Definition Classes
    Recursive
  15. def children[U](t: T)(implicit U: Aux[U, [β$32$]ListF[T, β$32$]], BF: Functor[Base], B: Foldable[Base]): U
    Definition Classes
    Recursive
  16. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. def colambek(ft: Base[T])(implicit BF: Functor[Base]): T

    Roughly a default impl of embed, given a matryoshka.Recursive instance and an overridden ana.

  18. def collect[U, B](t: T)(pf: slamdata.Predef.PartialFunction[T, B])(implicit arg0: Monoid[U], U: Aux[U, [β$35$]ListF[B, β$35$]], BF: Functor[Base], B: Foldable[Base]): U
    Definition Classes
    Recursive
  19. def contains(t: T, c: T)(implicit T: Equal[T], BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean
    Definition Classes
    Recursive
  20. def convertTo[R](t: T)(implicit R: Aux[R, Base], BF: Functor[Base]): R
    Definition Classes
    Recursive
  21. implicit val corec: Aux[T, Base]
    Definition Classes
    Corecursive
  22. def elgotAna[N[_], A](a: A)(k: DistributiveLaw[N, Base], ψ: ElgotCoalgebra[N, Base, A])(implicit arg0: Monad[N], BF: Functor[Base]): T
    Definition Classes
    Corecursive
  23. def elgotApo[A](a: A)(f: ElgotCoalgebra[[β$10$]\/[T, β$10$], Base, A])(implicit BF: Functor[Base]): T
    Definition Classes
    BirecursiveCorecursive
  24. def elgotCata[W[_], A](t: T)(k: DistributiveLaw[Base, W], g: ElgotAlgebra[W, Base, A])(implicit arg0: Comonad[W], BF: Functor[Base]): A

    A catamorphism generalized with a comonad outside the functor.

    A catamorphism generalized with a comonad outside the functor.

    Definition Classes
    Recursive
  25. def elgotCataM[W[_], M[_], A](t: T)(k: DistributiveLaw[Base, [A]M[W[A]]], g: ElgotAlgebraM[W, M, Base, A])(implicit arg0: Comonad[W], arg1: Traverse[W], arg2: Monad[M], BT: Traverse[Base]): M[A]
    Definition Classes
    Recursive
  26. def elgotFutu[A](a: A)(f: ElgotCoalgebra[[β$9$]Free[Base, β$9$], Base, A])(implicit BF: Functor[Base]): T
    Definition Classes
    Corecursive
  27. def elgotHisto[A](t: T)(f: ElgotAlgebra[[β$22$]Cofree[Base, β$22$], Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    Recursive
  28. def elgotPara[A](t: T)(f: ElgotAlgebra[[β$3$](T, β$3$), Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    BirecursiveRecursive
  29. def elgotZygo[A, B](t: T)(f: Algebra[Base, B], g: ElgotAlgebra[[β$10$](B, β$10$), Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    Recursive
  30. def elgotZygoM[A, B, M[_]](t: T)(f: AlgebraM[M, Base, B], g: ElgotAlgebraM[[β$12$](B, β$12$), M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[A]
    Definition Classes
    Recursive
  31. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  32. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  33. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  34. def foldMap[Z](t: T)(f: (T) ⇒ Z)(implicit arg0: Monoid[Z], BF: Functor[Base], B: Foldable[Base]): Z
    Definition Classes
    Recursive
  35. def foldMapM[M[_], Z](t: T)(f: (T) ⇒ M[Z])(implicit arg0: Monad[M], arg1: Monoid[Z], BF: Functor[Base], B: Foldable[Base]): M[Z]
    Definition Classes
    Recursive
  36. def futu[A](a: A)(f: GCoalgebra[[β$7$]Free[Base, β$7$], Base, A])(implicit BF: Functor[Base]): T
    Definition Classes
    Corecursive
  37. def futuM[M[_], A](a: A)(f: GCoalgebraM[[β$11$]Free[Base, β$11$], M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[T]
    Definition Classes
    Corecursive
  38. def gElgotZygo[W[_], A, B](t: T)(f: Algebra[Base, B], w: DistributiveLaw[Base, W], g: ElgotAlgebra[[γ$16$]EnvT[B, W, γ$16$], Base, A])(implicit arg0: Comonad[W], BF: Functor[Base]): A
    Definition Classes
    Recursive
  39. def gana[N[_], A](a: A)(k: DistributiveLaw[N, Base], f: GCoalgebra[N, Base, A])(implicit arg0: Monad[N], BF: Functor[Base]): T
    Definition Classes
    Corecursive
  40. def ganaM[N[_], M[_], A](a: A)(k: DistributiveLaw[N, Base], f: GCoalgebraM[N, M, Base, A])(implicit arg0: Monad[N], arg1: Traverse[N], arg2: Monad[M], BT: Traverse[Base]): M[T]
    Definition Classes
    Corecursive
  41. def gapo[A, B](a: A)(ψ0: Coalgebra[Base, B], ψ: GCoalgebra[[β$3$]\/[B, β$3$], Base, A])(implicit BF: Functor[Base]): T

    An unfold that can handle sections with a secondary unfold.

    An unfold that can handle sections with a secondary unfold.

    Definition Classes
    Corecursive
  42. def gcata[W[_], A](t: T)(k: DistributiveLaw[Base, W], g: GAlgebra[W, Base, A])(implicit arg0: Comonad[W], BF: Functor[Base]): A

    A catamorphism generalized with a comonad inside the functor.

    A catamorphism generalized with a comonad inside the functor.

    Definition Classes
    Recursive
  43. def gcataM[W[_], M[_], A](t: T)(w: DistributiveLaw[Base, W], g: GAlgebraM[W, M, Base, A])(implicit arg0: Comonad[W], arg1: Traverse[W], arg2: Monad[M], BT: Traverse[Base]): M[A]
    Definition Classes
    Recursive
  44. def gcataZygo[W[_], A, B](t: T)(k: DistributiveLaw[Base, W], f: GAlgebra[W, Base, B], g: GAlgebra[[β$26$](B, β$26$), Base, A])(implicit arg0: Comonad[W], BF: Functor[Base], BU: Unzip[Base]): A
    Definition Classes
    Recursive
  45. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  46. def ghisto[H[_], A](t: T)(g: DistributiveLaw[Base, H], f: GAlgebra[[β$24$]Cofree[H, β$24$], Base, A])(implicit arg0: Functor[H], BF: Functor[Base]): A
    Definition Classes
    Recursive
  47. def gpara[W[_], A](t: T)(e: DistributiveLaw[Base, W], f: GAlgebra[[γ$12$]EnvT[T, W, γ$12$], Base, A])(implicit arg0: Comonad[W], BF: Functor[Base]): A
  48. def gpostpro[N[_], A](a: A)(k: DistributiveLaw[N, Base], e: ~>[Base, Base], ψ: GCoalgebra[N, Base, A])(implicit BF: Functor[Base], N: Monad[N]): T
  49. def gprepro[W[_], A](t: T)(k: DistributiveLaw[Base, W], e: ~>[Base, Base], f: GAlgebra[W, Base, A])(implicit arg0: Comonad[W], BF: Functor[Base]): A
  50. def gzygo[W[_], A, B](t: T)(f: Algebra[Base, B], w: DistributiveLaw[Base, W], g: GAlgebra[[γ$14$]EnvT[B, W, γ$14$], Base, A])(implicit arg0: Comonad[W], BF: Functor[Base]): A
    Definition Classes
    Recursive
  51. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  52. def histo[A](t: T)(f: GAlgebra[[β$20$]Cofree[Base, β$20$], Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    Recursive
  53. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  54. def isLeaf(t: T)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean
    Definition Classes
    Recursive
  55. def lambek(tf: T)(implicit BF: Functor[Base]): Base[T]

    Roughly a default impl of project, given a matryoshka.Corecursive instance and an overridden cata.

  56. def mutu[A, B](t: T)(f: GAlgebra[[β$18$](A, β$18$), Base, B], g: GAlgebra[[β$19$](B, β$19$), Base, A])(implicit BF: Functor[Base]): A

    Mutually-recursive fold.

    Mutually-recursive fold.

    Definition Classes
    Recursive
    Annotations
    @SuppressWarnings()
  57. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  58. final def notify(): Unit
    Definition Classes
    AnyRef
  59. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  60. def para[A](t: T)(f: GAlgebra[[β$1$](T, β$1$), Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    BirecursiveRecursive
  61. def paraM[M[_], A](t: T)(f: GAlgebraM[[β$3$](T, β$3$), M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[A]
    Definition Classes
    Recursive
  62. def paraMerga[A](t: T, that: T)(f: (T, T, slamdata.Predef.Option[Base[A]]) ⇒ A)(implicit BF: Functor[Base], BM: Merge[Base]): A

    Combines two functors that may fail to merge, also providing access to the inputs at each level.

    Combines two functors that may fail to merge, also providing access to the inputs at each level. This is akin to an Elgot, not generalized, fold.

    Definition Classes
    Recursive
  63. def paraZygo[A, B](t: T)(f: GAlgebra[[β$5$](T, β$5$), Base, B], g: GAlgebra[[β$6$](B, β$6$), Base, A])(implicit BF: Functor[Base], BU: Unzip[Base]): A
    Definition Classes
    BirecursiveRecursive
  64. def postpro[A](a: A)(e: ~>[Base, Base], g: Coalgebra[Base, A])(implicit BF: Functor[Base]): T
  65. def prepro[A](t: T)(e: ~>[Base, Base], f: Algebra[Base, A])(implicit BF: Functor[Base]): A
  66. implicit val rec: Aux[T, Base]
    Definition Classes
    Recursive
  67. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  68. def toString(): String
    Definition Classes
    AnyRef → Any
  69. def topDownCata[A](t: T, a: A)(f: (A, T) ⇒ (A, T))(implicit BF: Functor[Base]): T
  70. def topDownCataM[M[_], A](t: T, a: A)(f: (A, T) ⇒ M[(A, T)])(implicit arg0: Monad[M], BT: Traverse[Base]): M[T]
  71. def transAna[U, G[_]](u: U)(f: (G[U]) ⇒ Base[U])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): T
    Definition Classes
    Corecursive
  72. def transAnaM[M[_], U, G[_]](u: U)(f: TransformM[M, U, G, Base])(implicit arg0: Monad[M], arg1: Functor[G], U: Aux[U, G], BT: Traverse[Base]): M[T]
    Definition Classes
    Corecursive
  73. def transAnaT(t: T)(f: (T) ⇒ T)(implicit BF: Functor[Base]): T
  74. def transAnaTM[M[_]](t: T)(f: (T) ⇒ M[T])(implicit arg0: Monad[M], BF: Traverse[Base]): M[T]
  75. def transApo[U, G[_]](u: U)(f: CoalgebraicGTransform[[β$15$]\/[T, β$15$], U, G, Base])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): T
    Definition Classes
    BirecursiveCorecursive
  76. def transApoT(t: T)(f: (T) ⇒ \/[T, T])(implicit BF: Functor[Base]): T

    This behaves like matryoshka.Corecursive.elgotApo, but it’s harder to see from the types that in the disjunction, -\/ is the final result for this node, while \/- means to keep processing the children.

  77. def transCata[U, G[_]](t: T)(f: (Base[U]) ⇒ G[U])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U
    Definition Classes
    Recursive
  78. def transCataM[M[_], U, G[_]](t: T)(f: TransformM[M, U, Base, G])(implicit arg0: Monad[M], arg1: Functor[G], U: Aux[U, G], BT: Traverse[Base]): M[U]
    Definition Classes
    Recursive
  79. def transCataT(t: T)(f: (T) ⇒ T)(implicit BF: Functor[Base]): T
  80. def transCataTM[M[_]](t: T)(f: (T) ⇒ M[T])(implicit arg0: Monad[M], BF: Traverse[Base]): M[T]
  81. def transFutu[U, G[_]](u: U)(f: CoalgebraicGTransform[[β$15$]Free[Base, β$15$], U, G, Base])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): T
    Definition Classes
    Corecursive
  82. def transGana[M[_], U, G[_]](u: U)(k: DistributiveLaw[M, Base], f: CoalgebraicGTransform[M, U, G, Base])(implicit arg0: Monad[M], arg1: Functor[G], U: Aux[U, G], BF: Functor[Base]): T
    Definition Classes
    Corecursive
  83. def transGcata[W[_], U, G[_]](t: T)(k: DistributiveLaw[Base, W], f: AlgebraicGTransform[W, U, Base, G])(implicit arg0: Comonad[W], arg1: Functor[G], U: Aux[U, G], BF: Functor[Base]): U
    Definition Classes
    Recursive
  84. def transPara[U, G[_]](t: T)(f: AlgebraicGTransform[[β$14$](T, β$14$), U, Base, G])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U
    Definition Classes
    BirecursiveRecursive
  85. def transParaT(t: T)(f: ((T, T)) ⇒ T)(implicit BF: Functor[Base]): T

    This behaves like matryoshka.Recursive.elgotPara, but it’s harder to see from the types that in the tuple, _2 is the result so far and _1 is the original structure.

  86. def transPostpro[U, G[_]](t: T)(e: ~>[G, G], f: Transform[T, Base, G])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U
    Definition Classes
    Recursive
  87. def transPrepro[U, G[_]](t: T)(e: ~>[Base, Base], f: Transform[U, Base, G])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U
  88. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  89. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  90. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  91. def zygo[A, B](t: T)(f: Algebra[Base, B], g: GAlgebra[[β$4$](B, β$4$), Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    Recursive
  92. def zygoM[A, B, M[_]](t: T)(f: AlgebraM[M, Base, B], g: GAlgebraM[[β$6$](B, β$6$), M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[A]
    Definition Classes
    Recursive

Inherited from Corecursive[T]

Inherited from Recursive[T]

Inherited from Based[T]

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped