Packages

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

A type that is both Recursive and Corecursive.

NB: Do not define instances of this or use it as a constraint until issue #44 is resolved. Define an instance of BirecursiveT if possible, otherwise define separate Recursive and Corecursive instances.

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[[β$0$]\/[T, β$0$], 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
    Corecursive
  9. def apoM[M[_], A](a: A)(f: GCoalgebraM[[β$3$]\/[T, β$3$], 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[A](t: T, z: A)(f: (A, Base[T]) ⇒ A)(implicit BF: Functor[Base]): Cofree[Base, A]

    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[_], A](t: T, z: A)(f: (A, Base[T]) ⇒ M[A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[Cofree[Base, A]]

    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(t: T)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.List[T]
    Definition Classes
    Recursive
  16. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. def colambek(ft: Base[T])(implicit TR: Aux[T, Base], BF: Functor[Base]): T

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

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

    Definition Classes
    Corecursive
  18. def collect[B](t: T)(pf: slamdata.Predef.PartialFunction[T, B])(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.List[B]
    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. 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
  22. def elgotApo[A](a: A)(f: ElgotCoalgebra[[β$1$]\/[T, β$1$], Base, A])(implicit BF: Functor[Base]): T
    Definition Classes
    Corecursive
  23. 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
  24. 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
  25. def elgotFutu[A](a: A)(f: ElgotCoalgebra[[β$6$]Free[Base, β$6$], Base, A])(implicit BF: Functor[Base]): T
    Definition Classes
    Corecursive
  26. def elgotHisto[A](t: T)(f: ElgotAlgebra[[β$21$]Cofree[Base, β$21$], Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    Recursive
  27. def elgotPara[A](t: T)(f: ElgotAlgebra[[β$1$](T, β$1$), Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    Recursive
  28. def elgotZygo[A, B](t: T)(f: Algebra[Base, B], g: ElgotAlgebra[[β$9$](B, β$9$), Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    Recursive
  29. def elgotZygoM[A, B, M[_]](t: T)(f: AlgebraM[M, Base, B], g: ElgotAlgebraM[[β$11$](B, β$11$), M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[A]
    Definition Classes
    Recursive
  30. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  31. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  32. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  33. def foldMap[Z](t: T)(f: (T) ⇒ Z)(implicit arg0: Monoid[Z], BF: Functor[Base], B: Foldable[Base]): Z
    Definition Classes
    Recursive
  34. 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
  35. def futu[A](a: A)(f: GCoalgebra[[β$4$]Free[Base, β$4$], Base, A])(implicit BF: Functor[Base]): T
    Definition Classes
    Corecursive
  36. def futuM[M[_], A](a: A)(f: GCoalgebraM[[β$8$]Free[Base, β$8$], M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[T]
    Definition Classes
    Corecursive
  37. def gElgotZygo[W[_], A, B](t: T)(f: Algebra[Base, B], w: DistributiveLaw[Base, W], g: ElgotAlgebra[[γ$15$]EnvT[B, W, γ$15$], Base, A])(implicit arg0: Comonad[W], BF: Functor[Base]): A
    Definition Classes
    Recursive
  38. 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
  39. 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
  40. def gapo[A, B](a: A)(ψ0: Coalgebra[Base, B], ψ: GCoalgebra[[β$2$]\/[B, β$2$], 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
  41. 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
  42. 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
  43. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  44. def ghisto[H[_], A](t: T)(g: DistributiveLaw[Base, H], f: GAlgebra[[β$23$]Cofree[H, β$23$], Base, A])(implicit arg0: Functor[H], BF: Functor[Base]): A
    Definition Classes
    Recursive
  45. def gpara[W[_], A](t: T)(e: DistributiveLaw[Base, W], f: GAlgebra[[γ$29$]EnvT[T, W, γ$29$], Base, A])(implicit arg0: Comonad[W], T: Aux[T, Base], BF: Functor[Base]): A
    Definition Classes
    Recursive
  46. def gpostpro[N[_], A](a: A)(k: DistributiveLaw[N, Base], e: ~>[Base, Base], ψ: GCoalgebra[N, Base, A])(implicit T: Aux[T, Base], BF: Functor[Base], N: Monad[N]): T
    Definition Classes
    Corecursive
  47. def gprepro[W[_], A](t: T)(k: DistributiveLaw[Base, W], e: ~>[Base, Base], f: GAlgebra[W, Base, A])(implicit arg0: Comonad[W], T: Aux[T, Base], BF: Functor[Base]): A
    Definition Classes
    Recursive
  48. def gzygo[W[_], A, B](t: T)(f: Algebra[Base, B], w: DistributiveLaw[Base, W], g: GAlgebra[[γ$13$]EnvT[B, W, γ$13$], Base, A])(implicit arg0: Comonad[W], BF: Functor[Base]): A
    Definition Classes
    Recursive
  49. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  50. def histo[A](t: T)(f: GAlgebra[[β$19$]Cofree[Base, β$19$], Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    Recursive
  51. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  52. def isLeaf(t: T)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean
    Definition Classes
    Recursive
  53. def lambek(tf: T)(implicit T: Aux[T, Base], BF: Functor[Base]): Base[T]

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

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

    Definition Classes
    Recursive
  54. def mapR[U, G[_]](t: T)(f: (Base[T]) ⇒ G[U])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U
    Definition Classes
    Recursive
  55. def mutu[A, B](t: T)(f: GAlgebra[[β$17$](A, β$17$), Base, B], g: GAlgebra[[β$18$](B, β$18$), Base, A])(implicit BF: Functor[Base]): A

    Mutually-recursive fold.

    Mutually-recursive fold.

    Definition Classes
    Recursive
  56. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  57. final def notify(): Unit
    Definition Classes
    AnyRef
  58. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  59. def para[A](t: T)(f: GAlgebra[[β$0$](T, β$0$), Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    Recursive
  60. def paraM[M[_], A](t: T)(f: GAlgebraM[[β$2$](T, β$2$), M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[A]
    Definition Classes
    Recursive
  61. 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
  62. def paraZygo[A, B](t: T)(f: GAlgebra[[β$25$](T, β$25$), Base, B], g: GAlgebra[[β$26$](B, β$26$), Base, A])(implicit BF: Functor[Base], BU: Unzip[Base]): A
    Definition Classes
    Recursive
  63. def postpro[A](a: A)(e: ~>[Base, Base], g: Coalgebra[Base, A])(implicit T: Aux[T, Base], BF: Functor[Base]): T
    Definition Classes
    Corecursive
  64. def prepro[A](t: T)(e: ~>[Base, Base], f: Algebra[Base, A])(implicit T: Aux[T, Base], BF: Functor[Base]): A
    Definition Classes
    Recursive
  65. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  66. def toString(): String
    Definition Classes
    AnyRef → Any
  67. def topDownCata[A](t: T, a: A)(f: (A, T) ⇒ (A, T))(implicit T: Aux[T, Base], BF: Functor[Base]): T
    Definition Classes
    Recursive
  68. def topDownCataM[M[_], A](t: T, a: A)(f: (A, T) ⇒ M[(A, T)])(implicit arg0: Monad[M], T: Aux[T, Base], BT: Traverse[Base]): M[T]
    Definition Classes
    Recursive
  69. def transAna[U, G[_]](t: T)(f: (Base[T]) ⇒ G[T])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U
    Definition Classes
    Recursive
  70. def transAnaM[M[_], U, G[_]](t: T)(f: TransformM[M, T, Base, G])(implicit arg0: Monad[M], arg1: Traverse[G], U: Aux[U, G], BF: Functor[Base]): M[U]
    Definition Classes
    Recursive
  71. def transAnaT(t: T)(f: (T) ⇒ T)(implicit T: Aux[T, Base], BF: Functor[Base]): T
    Definition Classes
    Recursive
  72. def transAnaTM[M[_]](t: T)(f: (T) ⇒ M[T])(implicit arg0: Monad[M], T: Aux[T, Base], BF: Traverse[Base]): M[T]
    Definition Classes
    Recursive
  73. def transApo[U, G[_]](t: T)(f: CoalgebraicGTransform[[β$28$]\/[U, β$28$], T, Base, G])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U
    Definition Classes
    Recursive
  74. def transApoT(t: T)(f: (T) ⇒ \/[T, T])(implicit T: Aux[T, Base], 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.

    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.

    Definition Classes
    Recursive
  75. 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
  76. 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
  77. def transCataT(t: T)(f: (T) ⇒ T)(implicit T: Aux[T, Base], BF: Functor[Base]): T
    Definition Classes
    Recursive
  78. def transCataTM[M[_]](t: T)(f: (T) ⇒ M[T])(implicit arg0: Monad[M], T: Aux[T, Base], BF: Traverse[Base]): M[T]
    Definition Classes
    Recursive
  79. def transHylo[G[_], U, H[_]](t: T)(φ: (G[U]) ⇒ H[U], ψ: (Base[T]) ⇒ G[T])(implicit arg0: Functor[G], arg1: Functor[H], U: Aux[U, H], BF: Functor[Base]): U
    Definition Classes
    Recursive
  80. def transPara[U, G[_]](t: T)(f: AlgebraicGTransform[[β$27$](T, β$27$), U, Base, G])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U
    Definition Classes
    Recursive
  81. def transParaT(t: T)(f: ((T, T)) ⇒ T)(implicit T: Aux[T, Base], 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.

    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.

    Definition Classes
    Recursive
  82. def transPostpro[U, G[_]](t: T)(e: ~>[G, G], f: Transform[T, Base, G])(implicit arg0: Functor[G], UR: Aux[U, G], UC: Aux[U, G], BF: Functor[Base]): U
    Definition Classes
    Recursive
  83. def transPrepro[U, G[_]](t: T)(e: ~>[Base, Base], f: Transform[U, Base, G])(implicit arg0: Functor[G], T: Aux[T, Base], U: Aux[U, G], BF: Functor[Base]): U
    Definition Classes
    Recursive
  84. def traverseR[M[_], U, G[_]](t: T)(f: (Base[T]) ⇒ M[G[U]])(implicit arg0: Functor[M], arg1: Functor[G], U: Aux[U, G], BF: Functor[Base]): M[U]
    Definition Classes
    Recursive
  85. def universe(t: T)(implicit BF: Functor[Base], B: Foldable[Base]): NonEmptyList[T]
    Definition Classes
    Recursive
  86. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  87. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  88. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  89. def zygo[A, B](t: T)(f: Algebra[Base, B], g: GAlgebra[[β$3$](B, β$3$), Base, A])(implicit BF: Functor[Base]): A
    Definition Classes
    Recursive
  90. def zygoM[A, B, M[_]](t: T)(f: AlgebraM[M, Base, B], g: GAlgebraM[[β$5$](B, β$5$), 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