Trait/Object

matryoshka

Birecursive

Related Docs: object Birecursive | package matryoshka

Permalink

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]

    Permalink
    Definition Classes
    Based
  2. type BaseT[A] = Base[A]

    Permalink
    Definition Classes
    Recursive

Abstract Value Members

  1. abstract def embed(t: Base[T])(implicit BF: Functor[Base]): T

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

    Permalink
    Definition Classes
    Recursive

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def all(t: T)(p: (T) ⇒ slamdata.Predef.Boolean)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean

    Permalink
    Definition Classes
    Recursive
  5. def ana[A](a: A)(f: Coalgebra[Base, A])(implicit BF: Functor[Base]): T

    Permalink
    Definition Classes
    Corecursive
  6. def anaM[M[_], A](a: A)(f: CoalgebraM[M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[T]

    Permalink
    Definition Classes
    Corecursive
  7. def any(t: T)(p: (T) ⇒ slamdata.Predef.Boolean)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean

    Permalink
    Definition Classes
    Recursive
  8. def apo[A](a: A)(f: GCoalgebra[[β$8$]\/[T, β$8$], Base, A])(implicit BF: Functor[Base]): T

    Permalink

    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]

    Permalink
    Definition Classes
    Corecursive
  10. final def asInstanceOf[T0]: T0

    Permalink
    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

    Permalink

    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]

    Permalink

    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

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

    Permalink

    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

    Permalink
    Definition Classes
    Recursive
  16. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. def colambek(ft: Base[T])(implicit BF: Functor[Base]): T

    Permalink

    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

    Permalink
    Definition Classes
    Recursive
  19. def contains(t: T, c: T)(implicit T: Equal[T], BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean

    Permalink
    Definition Classes
    Recursive
  20. def convertTo[R](t: T)(implicit R: Aux[R, Base], BF: Functor[Base]): R

    Permalink
    Definition Classes
    Recursive
  21. implicit val corec: Aux[T, Base]

    Permalink
    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

    Permalink
    Definition Classes
    Corecursive
  23. def elgotApo[A](a: A)(f: ElgotCoalgebra[[β$10$]\/[T, β$10$], Base, A])(implicit BF: Functor[Base]): T

    Permalink
    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

    Permalink

    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]

    Permalink
    Definition Classes
    Recursive
  26. def elgotFutu[A](a: A)(f: ElgotCoalgebra[[β$9$]Free[Base, β$9$], Base, A])(implicit BF: Functor[Base]): T

    Permalink
    Definition Classes
    Corecursive
  27. def elgotHisto[A](t: T)(f: ElgotAlgebra[[β$22$]Cofree[Base, β$22$], Base, A])(implicit BF: Functor[Base]): A

    Permalink
    Definition Classes
    Recursive
  28. def elgotPara[A](t: T)(f: ElgotAlgebra[[β$3$](T, β$3$), Base, A])(implicit BF: Functor[Base]): A

    Permalink
    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

    Permalink
    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]

    Permalink
    Definition Classes
    Recursive
  31. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  32. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  33. def finalize(): Unit

    Permalink
    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

    Permalink
    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]

    Permalink
    Definition Classes
    Recursive
  36. def futu[A](a: A)(f: GCoalgebra[[β$7$]Free[Base, β$7$], Base, A])(implicit BF: Functor[Base]): T

    Permalink
    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]

    Permalink
    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

    Permalink
    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

    Permalink
    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]

    Permalink
    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

    Permalink

    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

    Permalink

    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]

    Permalink
    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

    Permalink
    Definition Classes
    Recursive
  45. final def getClass(): Class[_]

    Permalink
    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

    Permalink
    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

    Permalink
  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

    Permalink
  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

    Permalink
  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

    Permalink
    Definition Classes
    Recursive
  51. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  52. def histo[A](t: T)(f: GAlgebra[[β$20$]Cofree[Base, β$20$], Base, A])(implicit BF: Functor[Base]): A

    Permalink
    Definition Classes
    Recursive
  53. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  54. def isLeaf(t: T)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.Boolean

    Permalink
    Definition Classes
    Recursive
  55. def lambek(tf: T)(implicit BF: Functor[Base]): Base[T]

    Permalink

    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

    Permalink

    Mutually-recursive fold.

    Mutually-recursive fold.

    Definition Classes
    Recursive
    Annotations
    @SuppressWarnings()
  57. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  58. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  59. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  60. def para[A](t: T)(f: GAlgebra[[β$1$](T, β$1$), Base, A])(implicit BF: Functor[Base]): A

    Permalink
    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]

    Permalink
    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

    Permalink

    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

    Permalink
    Definition Classes
    BirecursiveRecursive
  64. def postpro[A](a: A)(e: ~>[Base, Base], g: Coalgebra[Base, A])(implicit BF: Functor[Base]): T

    Permalink
  65. def prepro[A](t: T)(e: ~>[Base, Base], f: Algebra[Base, A])(implicit BF: Functor[Base]): A

    Permalink
  66. implicit val rec: Aux[T, Base]

    Permalink
    Definition Classes
    Recursive
  67. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  68. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  69. def topDownCata[A](t: T, a: A)(f: (A, T) ⇒ (A, T))(implicit BF: Functor[Base]): T

    Permalink
  70. def topDownCataM[M[_], A](t: T, a: A)(f: (A, T) ⇒ M[(A, T)])(implicit arg0: Monad[M], BT: Traverse[Base]): M[T]

    Permalink
  71. def transAna[U, G[_]](u: U)(f: (G[U]) ⇒ Base[U])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): T

    Permalink
    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]

    Permalink
    Definition Classes
    Corecursive
  73. def transAnaT(t: T)(f: (T) ⇒ T)(implicit BF: Functor[Base]): T

    Permalink
  74. def transAnaTM[M[_]](t: T)(f: (T) ⇒ M[T])(implicit arg0: Monad[M], BF: Traverse[Base]): M[T]

    Permalink
  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

    Permalink
    Definition Classes
    BirecursiveCorecursive
  76. def transApoT(t: T)(f: (T) ⇒ \/[T, T])(implicit BF: Functor[Base]): T

    Permalink

    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

    Permalink
    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]

    Permalink
    Definition Classes
    Recursive
  79. def transCataT(t: T)(f: (T) ⇒ T)(implicit BF: Functor[Base]): T

    Permalink
  80. def transCataTM[M[_]](t: T)(f: (T) ⇒ M[T])(implicit arg0: Monad[M], BF: Traverse[Base]): M[T]

    Permalink
  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

    Permalink
    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

    Permalink
    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

    Permalink
    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

    Permalink
    Definition Classes
    BirecursiveRecursive
  85. def transParaT(t: T)(f: ((T, T)) ⇒ T)(implicit BF: Functor[Base]): T

    Permalink

    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

    Permalink
    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

    Permalink
  88. final def wait(): Unit

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

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

    Permalink
    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

    Permalink
    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]

    Permalink
    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