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.
- 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[[β$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
-
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
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
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
-
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
-
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(t: T)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.List[T]
- Definition Classes
- Recursive
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
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 overriddenana
.Roughly a default impl of
embed
, given a matryoshka.Recursive instance and an overriddenana
.- Definition Classes
- Corecursive
-
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
-
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
-
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[[β$1$]\/[T, β$1$], Base, A])(implicit BF: Functor[Base]): T
- Definition Classes
- 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[[β$6$]Free[Base, β$6$], Base, A])(implicit BF: Functor[Base]): T
- Definition Classes
- Corecursive
-
def
elgotHisto[A](t: T)(f: ElgotAlgebra[[β$21$]Cofree[Base, β$21$], Base, A])(implicit BF: Functor[Base]): A
- Definition Classes
- Recursive
-
def
elgotPara[A](t: T)(f: ElgotAlgebra[[β$1$](T, β$1$), Base, A])(implicit BF: Functor[Base]): A
- Definition Classes
- Recursive
-
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
-
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
-
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[[β$4$]Free[Base, β$4$], Base, A])(implicit BF: Functor[Base]): T
- Definition Classes
- Corecursive
-
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
-
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
-
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[[β$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
-
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
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
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
-
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
-
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
-
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
-
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
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
def
histo[A](t: T)(f: GAlgebra[[β$19$]Cofree[Base, β$19$], 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 T: Aux[T, Base], BF: Functor[Base]): Base[T]
Roughly a default impl of
project
, given a matryoshka.Corecursive instance and an overriddencata
.Roughly a default impl of
project
, given a matryoshka.Corecursive instance and an overriddencata
.- Definition Classes
- Recursive
-
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
-
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
-
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[[β$0$](T, β$0$), Base, A])(implicit BF: Functor[Base]): A
- Definition Classes
- Recursive
-
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
-
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[[β$25$](T, β$25$), Base, B], g: GAlgebra[[β$26$](B, β$26$), Base, A])(implicit BF: Functor[Base], BU: Unzip[Base]): A
- Definition Classes
- Recursive
-
def
postpro[A](a: A)(e: ~>[Base, Base], g: Coalgebra[Base, A])(implicit T: Aux[T, Base], BF: Functor[Base]): T
- Definition Classes
- Corecursive
-
def
prepro[A](t: T)(e: ~>[Base, Base], f: Algebra[Base, A])(implicit T: Aux[T, Base], BF: Functor[Base]): A
- 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 T: Aux[T, Base], BF: Functor[Base]): T
- Definition Classes
- Recursive
-
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
-
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
-
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
-
def
transAnaT(t: T)(f: (T) ⇒ T)(implicit T: Aux[T, Base], BF: Functor[Base]): T
- Definition Classes
- Recursive
-
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
-
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
-
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
-
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 T: Aux[T, Base], BF: Functor[Base]): T
- Definition Classes
- Recursive
-
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
-
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
-
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
-
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,
_2is the result so far and
_1is the original structure.
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.
- Definition Classes
- Recursive
-
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
-
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
-
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
-
def
universe(t: T)(implicit BF: Functor[Base], B: Foldable[Base]): NonEmptyList[T]
- Definition Classes
- Recursive
-
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[[β$3$](B, β$3$), Base, A])(implicit BF: Functor[Base]): A
- Definition Classes
- Recursive
-
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