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.

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]

    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[[β$0$]\/[T, β$0$], 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
    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]

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

    Permalink
    Definition Classes
    Any
  11. def attributeTopDown[A](t: T, z: A)(f: (A, Base[T]) ⇒ A)(implicit BF: Functor[Base]): Cofree[Base, A]

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

    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(t: T)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.List[T]

    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 TR: Aux[T, Base], BF: Functor[Base]): T

    Permalink

    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]

    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. 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
  22. def elgotApo[A](a: A)(f: ElgotCoalgebra[[β$1$]\/[T, β$1$], Base, A])(implicit BF: Functor[Base]): T

    Permalink
    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

    Permalink

    A catamorphism generalized with a comonad outside the functor.

    A catamorphism generalized with a comonad outside the functor.

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

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

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

    Permalink
    Definition Classes
    Recursive
  27. def elgotZygo[A, B](t: T)(f: Algebra[Base, B], g: ElgotAlgebra[[β$5$](B, β$5$), Base, A])(implicit BF: Functor[Base]): A

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

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

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  31. def foldMap[Z](t: T)(f: (T) ⇒ Z)(implicit arg0: Monoid[Z], BF: Functor[Base], B: Foldable[Base]): Z

    Permalink
    Definition Classes
    Recursive
  32. 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
  33. def futu[A](a: A)(f: GCoalgebra[[β$4$]Free[Base, β$4$], Base, A])(implicit BF: Functor[Base]): T

    Permalink
    Definition Classes
    Corecursive
  34. def futuM[M[_], A](a: A)(f: GCoalgebraM[[β$8$]Free[Base, β$8$], M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[T]

    Permalink
    Definition Classes
    Corecursive
  35. def gElgotZygo[W[_], A, B](t: T)(f: Algebra[Base, B], w: DistributiveLaw[Base, W], g: ElgotAlgebra[[γ$9$]EnvT[B, W, γ$9$], Base, A])(implicit arg0: Comonad[W], BF: Functor[Base]): A

    Permalink
    Definition Classes
    Recursive
  36. 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
  37. 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
  38. def gapo[A, B](a: A)(ψ0: Coalgebra[Base, B], ψ: GCoalgebra[[β$2$]\/[B, β$2$], 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
  39. 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
  40. def gcataM[W[_], M[_], A](t: T)(k: 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
  41. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  42. def ghisto[H[_], A](t: T)(g: DistributiveLaw[Base, H], f: GAlgebra[[β$17$]Cofree[H, β$17$], Base, A])(implicit arg0: Functor[H], BF: Functor[Base]): A

    Permalink
    Definition Classes
    Recursive
  43. def gpara[W[_], A](t: T)(e: DistributiveLaw[Base, W], f: GAlgebra[[γ$23$]EnvT[T, W, γ$23$], Base, A])(implicit arg0: Comonad[W], T: Aux[T, Base], BF: Functor[Base]): A

    Permalink
    Definition Classes
    Recursive
  44. 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

    Permalink
    Definition Classes
    Corecursive
  45. 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

    Permalink
    Definition Classes
    Recursive
  46. def gzygo[W[_], A, B](t: T)(f: Algebra[Base, B], w: DistributiveLaw[Base, W], g: GAlgebra[[γ$7$]EnvT[B, W, γ$7$], Base, A])(implicit arg0: Comonad[W], BF: Functor[Base]): A

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

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

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

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

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

    Permalink

    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
  52. def mapR[U, G[_]](t: T)(f: (Base[T]) ⇒ G[U])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U

    Permalink
    Definition Classes
    Recursive
  53. def mutu[A, B](t: T)(f: GAlgebra[[β$11$](A, β$11$), Base, B], g: GAlgebra[[β$12$](B, β$12$), Base, A])(implicit BF: Functor[Base]): A

    Permalink

    Mutually-recursive fold.

    Mutually-recursive fold.

    Definition Classes
    Recursive
  54. final def ne(arg0: AnyRef): Boolean

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

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

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

    Permalink
    Definition Classes
    Recursive
  58. def paraM[M[_], A](t: T)(f: GAlgebraM[[β$2$](T, β$2$), M, Base, A])(implicit arg0: Monad[M], BT: Traverse[Base]): M[A]

    Permalink
    Definition Classes
    Recursive
  59. 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
  60. def paraZygo[A, B](t: T)(f: GAlgebra[[β$19$](T, β$19$), Base, B], g: GAlgebra[[β$20$](B, β$20$), Base, A])(implicit BF: Functor[Base], BU: Unzip[Base]): A

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

    Permalink
    Definition Classes
    Corecursive
  62. def prepro[A](t: T)(e: ~>[Base, Base], f: Algebra[Base, A])(implicit T: Aux[T, Base], BF: Functor[Base]): A

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

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

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

    Permalink
    Definition Classes
    Recursive
  66. 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]

    Permalink
    Definition Classes
    Recursive
  67. def transAna[U, G[_]](t: T)(f: (Base[T]) ⇒ G[T])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U

    Permalink
    Definition Classes
    Recursive
  68. 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]

    Permalink
    Definition Classes
    Recursive
  69. def transAnaT(t: T)(f: (T) ⇒ T)(implicit T: Aux[T, Base], BF: Functor[Base]): T

    Permalink
    Definition Classes
    Recursive
  70. def transAnaTM[M[_]](t: T)(f: (T) ⇒ M[T])(implicit arg0: Monad[M], T: Aux[T, Base], BF: Traverse[Base]): M[T]

    Permalink
    Definition Classes
    Recursive
  71. def transApo[U, G[_]](t: T)(f: CoalgebraicGTransform[[β$22$]\/[U, β$22$], T, Base, G])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U

    Permalink
    Definition Classes
    Recursive
  72. def transApoT(t: T)(f: (T) ⇒ \/[T, T])(implicit T: Aux[T, Base], 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.

    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
  73. 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
  74. 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
  75. def transCataT(t: T)(f: (T) ⇒ T)(implicit T: Aux[T, Base], BF: Functor[Base]): T

    Permalink
    Definition Classes
    Recursive
  76. def transCataTM[M[_]](t: T)(f: (T) ⇒ M[T])(implicit arg0: Monad[M], T: Aux[T, Base], BF: Traverse[Base]): M[T]

    Permalink
    Definition Classes
    Recursive
  77. 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

    Permalink
    Definition Classes
    Recursive
  78. def transPara[U, G[_]](t: T)(f: AlgebraicGTransform[[β$21$](T, β$21$), U, Base, G])(implicit arg0: Functor[G], U: Aux[U, G], BF: Functor[Base]): U

    Permalink
    Definition Classes
    Recursive
  79. def transParaT(t: T)(f: ((T, T)) ⇒ T)(implicit T: Aux[T, Base], 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.

    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
  80. 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

    Permalink
    Definition Classes
    Recursive
  81. 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

    Permalink
    Definition Classes
    Recursive
  82. 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]

    Permalink
    Definition Classes
    Recursive
  83. def universe(t: T)(implicit BF: Functor[Base], B: Foldable[Base]): slamdata.Predef.List[T]

    Permalink
    Definition Classes
    Recursive
  84. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  87. def zygo[A, B](t: T)(f: Algebra[Base, B], g: GAlgebra[[β$3$](B, β$3$), Base, A])(implicit BF: Functor[Base]): 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