trait Birecursive[T] extends Recursive[T] with Corecursive[T]
A type that is both Recursive and Corecursive.
- Alphabetic
- By Inheritance
- Birecursive
- Corecursive
- Recursive
- Based
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
Abstract Value Members
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
all(t: T)(p: (T) ⇒ slamdata.Predef.Boolean)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean
- Definition Classes
- Recursive
-
def
ana[A](a: A)(f: Coalgebra[Base, A])(implicit BF: Functor[Base]): T
- Definition Classes
- Corecursive
-
def
anaM[M[_], A](a: A)(f: CoalgebraM[M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[T]
- Definition Classes
- Corecursive
-
def
any(t: T)(p: (T) ⇒ slamdata.Predef.Boolean)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean
- Definition Classes
- Recursive
-
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
- Birecursive → Corecursive
-
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
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
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
-
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
-
def
cata[A](t: T)(f: Algebra[Base, A])(implicit BF: Functor[Base]): A
- Definition Classes
- Recursive
-
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
-
def
children[U](t: T)(implicit U: Aux[U, [β$32$]ListF[T, β$32$]], BF: Functor[Base], B: Foldable[Base]): U
- Definition Classes
- Recursive
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
colambek(ft: Base[T])(implicit BF: Functor[Base]): T
Roughly a default impl of
embed
, given a matryoshka.Recursive instance and an overriddenana
. -
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
-
def
contains(t: T, c: T)(implicit T: Equal[T], BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean
- Definition Classes
- Recursive
-
def
convertTo[R](t: T)(implicit R: Aux[R, Base], BF: Functor[Base]): R
- Definition Classes
- Recursive
-
implicit
val
corec: Aux[T, Base]
- Definition Classes
- Corecursive
-
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
-
def
elgotApo[A](a: A)(f: ElgotCoalgebra[[β$10$]\/[T, β$10$], Base, A])(implicit BF: Functor[Base]): T
- Definition Classes
- Birecursive → Corecursive
-
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
-
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
-
def
elgotFutu[A](a: A)(f: ElgotCoalgebra[[β$9$]Free[Base, β$9$], Base, A])(implicit BF: Functor[Base]): T
- Definition Classes
- Corecursive
-
def
elgotHisto[A](t: T)(f: ElgotAlgebra[[β$22$]Cofree[Base, β$22$], Base, A])(implicit BF: Functor[Base]): A
- Definition Classes
- Recursive
-
def
elgotPara[A](t: T)(f: ElgotAlgebra[[β$3$](T, β$3$), Base, A])(implicit BF: Functor[Base]): A
- Definition Classes
- Birecursive → Recursive
-
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
-
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
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
foldMap[Z](t: T)(f: (T) ⇒ Z)(implicit arg0: Monoid[Z], BF: Functor[Base], B: Foldable[Base]): Z
- Definition Classes
- Recursive
-
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
-
def
futu[A](a: A)(f: GCoalgebra[[β$7$]Free[Base, β$7$], Base, A])(implicit BF: Functor[Base]): T
- Definition Classes
- Corecursive
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
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
- 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
- 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
- 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
-
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
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
def
histo[A](t: T)(f: GAlgebra[[β$20$]Cofree[Base, β$20$], Base, A])(implicit BF: Functor[Base]): A
- Definition Classes
- Recursive
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isLeaf(t: T)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean
- Definition Classes
- Recursive
-
def
lambek(tf: T)(implicit BF: Functor[Base]): Base[T]
Roughly a default impl of
project
, given a matryoshka.Corecursive instance and an overriddencata
. -
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()
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
para[A](t: T)(f: GAlgebra[[β$1$](T, β$1$), Base, A])(implicit BF: Functor[Base]): A
- Definition Classes
- Birecursive → Recursive
-
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
-
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
-
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
- Birecursive → Recursive
- def postpro[A](a: A)(e: ~>[Base, Base], g: Coalgebra[Base, A])(implicit BF: Functor[Base]): T
- def prepro[A](t: T)(e: ~>[Base, Base], f: Algebra[Base, A])(implicit BF: Functor[Base]): A
-
implicit
val
rec: Aux[T, Base]
- Definition Classes
- Recursive
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
- def topDownCata[A](t: T, a: A)(f: (A, T) ⇒ (A, T))(implicit BF: Functor[Base]): T
- def topDownCataM[M[_], A](t: T, a: A)(f: (A, T) ⇒ M[(A, T)])(implicit arg0: Monad[M], BT: Traverse[Base]): M[T]
-
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
-
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
- def transAnaT(t: T)(f: (T) ⇒ T)(implicit BF: Functor[Base]): T
- def transAnaTM[M[_]](t: T)(f: (T) ⇒ M[T])(implicit arg0: Monad[M], BF: Traverse[Base]): M[T]
-
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
- Birecursive → Corecursive
-
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.
-
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
-
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
- def transCataT(t: T)(f: (T) ⇒ T)(implicit BF: Functor[Base]): T
- def transCataTM[M[_]](t: T)(f: (T) ⇒ M[T])(implicit arg0: Monad[M], BF: Traverse[Base]): M[T]
-
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
-
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
-
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
-
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
- Birecursive → Recursive
-
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,
_2is the result so far and
_1is the original structure.
-
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
- 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
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
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
-
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