matryoshka

# Recursive

### Related Docs: object Recursive | package matryoshka

#### trait Recursive[T] extends Based[T]

Folds for recursive data types.

Self Type
Recursive[T]
Linear Supertypes
Based[T], Serializable, Serializable, AnyRef, Any
Known Subclasses
Ordering
1. Alphabetic
2. By Inheritance
Inherited
1. Recursive
2. Based
3. Serializable
4. Serializable
5. AnyRef
6. Any
1. Hide All
2. Show All
Visibility
1. Public
2. All

### Type Members

1. #### abstract type Base[A]

Definition Classes
Based

### 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

6. #### final def asInstanceOf[T0]: T0

Definition Classes
Any
7. #### 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.

8. #### 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

10. #### def cataM[M[_], A](t: T)(f: AlgebraM[M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[A]

A Kleisli catamorphism.

12. #### def clone(): AnyRef

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( ... )

16. #### 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.

22. #### final def eq(arg0: AnyRef): Boolean

Definition Classes
AnyRef
23. #### def equals(arg0: Any): Boolean

Definition Classes
AnyRef → Any
24. #### def finalize(): Unit

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( classOf[java.lang.Throwable] )

28. #### 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.

31. #### final def getClass(): Class[_]

Definition Classes
AnyRef → Any

34. #### def hashCode(): Int

Definition Classes
AnyRef → Any

36. #### final def isInstanceOf[T0]: Boolean

Definition Classes
Any

38. #### 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.

Annotations
@SuppressWarnings()
39. #### final def ne(arg0: AnyRef): Boolean

Definition Classes
AnyRef
40. #### final def notify(): Unit

Definition Classes
AnyRef
41. #### final def notifyAll(): Unit

Definition Classes
AnyRef

44. #### 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.

47. #### final def synchronized[T0](arg0: ⇒ T0): T0

Definition Classes
AnyRef
48. #### def toString(): String

Definition Classes
AnyRef → Any

54. #### final def wait(): Unit

Definition Classes
AnyRef
Annotations
@throws( ... )
55. #### final def wait(arg0: Long, arg1: Int): Unit

Definition Classes
AnyRef
Annotations
@throws( ... )
56. #### final def wait(arg0: Long): Unit

Definition Classes
AnyRef
Annotations
@throws( ... )