Package

matryoshka

Permalink

package matryoshka

Generalized folds, unfolds, and refolds.

Linear Supertypes
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. matryoshka
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type Algebra[F[_], A] = (F[A]) ⇒ A

    Permalink

    Fold a structure F to a value A.

  2. type AlgebraIso[F[_], A] = PIso[F[scalaz.Scalaz.Id[A]], F[scalaz.Scalaz.Id[A]], A, A]

    Permalink
  3. type AlgebraM[M[_], F[_], A] = (F[A]) ⇒ M[A]

    Permalink

    Fold a structure F to a value A, accumulating effects in the monad M.

  4. type AlgebraPrism[F[_], A] = PPrism[F[A], F[A], A, A]

    Permalink
  5. type AlgebraicElgotTransform[W[_], T, F[_], G[_]] = (W[F[T]]) ⇒ G[T]

    Permalink

    Transform a structure F contained in W, to a structure G, in bottom-up fashion.

  6. type AlgebraicElgotTransformM[W[_], M[_], T, F[_], G[_]] = (W[F[T]]) ⇒ M[G[T]]

    Permalink

    Transform a structure F contained in W, to a structure G, in bottom-up fashion.

  7. type AlgebraicGTransform[W[_], T, F[_], G[_]] = (F[W[T]]) ⇒ G[T]

    Permalink

    Transform a structure F containing values in W, to a structure G, in bottom-up fashion.

  8. type AlgebraicGTransformM[W[_], M[_], T, F[_], G[_]] = (F[W[T]]) ⇒ M[G[T]]

    Permalink

    Transform a structure F containing values in W, to a structure G, in bottom-up fashion.

  9. trait Based[T] extends Serializable

    Permalink

    Provides a type describing the pattern functor of some {co}recursive type T.

    Provides a type describing the pattern functor of some {co}recursive type T. For standard fixed-point types like matryoshka.data.Fix, Based[Fix[F]]#Base is simply F. However, directly recursive types generally have a less obvious pattern functor. E.g., Based[Cofree[F, A]]#Base is EnvT[A, F, ?].

  10. trait Birecursive[T] extends Recursive[T] with Corecursive[T]

    Permalink

    A type that is both Recursive and Corecursive.

  11. trait BirecursiveT[T[_[_]]] extends RecursiveT[T] with CorecursiveT[T]

    Permalink

    This is a workaround for a certain use case (e.g., matryoshka.patterns.Diff and matryoshka.patterns.PotentialFailure).

    This is a workaround for a certain use case (e.g., matryoshka.patterns.Diff and matryoshka.patterns.PotentialFailure). Define an instance of this rather than Recursive and Corecursive when possible.

  12. type Coalgebra[F[_], A] = (A) ⇒ F[A]

    Permalink

    Unfold a value A to a structure F.

  13. type CoalgebraM[M[_], F[_], A] = (A) ⇒ M[F[A]]

    Permalink

    Unfold a value A to a structure F, accumulating effects in the monad M.

  14. type CoalgebraPrism[F[_], A] = PPrism[A, A, F[A], F[A]]

    Permalink
  15. type CoalgebraicElgotTransform[N[_], T, F[_], G[_]] = (F[T]) ⇒ N[G[T]]

    Permalink

    Transform a structure F to a structure G, in top-down fashion, accumulating effects in the monad M.

  16. type CoalgebraicGTransform[N[_], T, F[_], G[_]] = (F[T]) ⇒ G[N[T]]

    Permalink

    Transform a structure F to a structure G, in top-down fashion, accumulating effects in the monad M.

  17. type CoalgebraicGTransformM[N[_], M[_], T, F[_], G[_]] = (F[T]) ⇒ M[G[N[T]]]

    Permalink

    Transform a structure F to a structure G containing values in N, in top-down fashion, accumulating effects in the monad M.

  18. trait Corecursive[T] extends Based[T]

    Permalink

    Unfolds for corecursive data types.

  19. trait CorecursiveT[T[_[_]]] extends AnyRef

    Permalink

    This is a workaround for a certain use case (e.g., matryoshka.patterns.Diff and matryoshka.patterns.PotentialFailure).

    This is a workaround for a certain use case (e.g., matryoshka.patterns.Diff and matryoshka.patterns.PotentialFailure). Define an instance of this rather than Corecursive when possible.

  20. trait Delay[F[_], G[_]] extends AnyRef

    Permalink

    To avoid diverging implicits with fixed-point types, we need to defer the lookup.

  21. type DistributiveLaw[F[_], G[_]] = NaturalTransformation[[A]F[G[A]], [A]G[F[A]]]

    Permalink

    A NaturalTransformation that sequences two types

  22. type ElgotAlgebra[W[_], F[_], A] = (W[F[A]]) ⇒ scalaz.Scalaz.Id[A]

    Permalink

    Fold a structure F (usually a Functor) contained in W (usually a Comonad), to a value A.

  23. type ElgotAlgebraIso[W[_], N[_], F[_], A] = PIso[W[F[A]], N[F[A]], A, A]

    Permalink
  24. type ElgotAlgebraM[W[_], M[_], F[_], A] = (W[F[A]]) ⇒ M[A]

    Permalink

    Fold a structure F (usually a Functor) contained in W (usually a Comonad), to a value A, accumulating effects in the monad M.

  25. type ElgotCoalgebra[E[_], F[_], A] = (A) ⇒ E[F[A]]

    Permalink

    Unfold a value A to a structure F (usually a Functor), contained in E.

  26. type ElgotCoalgebraM[E[_], M[_], F[_], A] = (A) ⇒ M[E[F[A]]]

    Permalink

    Unfold a value A to a structure F (usually a Functor), contained in E, accumulating effects in the monad M.

  27. type EndoTransform[T, F[_]] = (F[T]) ⇒ F[T]

    Permalink
  28. trait EqualT[T[_[_]]] extends Serializable

    Permalink
  29. type GAlgebra[W[_], F[_], A] = (F[W[A]]) ⇒ A

    Permalink

    Fold a structure F containing values in W, to a value A.

  30. type GAlgebraIso[W[_], N[_], F[_], A] = PIso[F[W[A]], F[N[A]], A, A]

    Permalink

    An algebra and its dual form an isomorphism.

  31. type GAlgebraM[W[_], M[_], F[_], A] = (F[W[A]]) ⇒ M[A]

    Permalink

    Fold a structure F containing values in W, to a value A, accumulating effects in the monad M.

  32. type GCoalgebra[N[_], F[_], A] = (A) ⇒ F[N[A]]

    Permalink

    Unfold a value A to a structure F containing values in N.

  33. type GCoalgebraM[N[_], M[_], F[_], A] = (A) ⇒ M[F[N[A]]]

    Permalink

    Unfold a value A to a structure F containing values in N, accumulating effects in the monad M.

  34. sealed abstract class Hole extends AnyRef

    Permalink
  35. trait Merge[F[_]] extends Serializable

    Permalink

    Like Zip, but it can fail to merge, so it’s much more general.

  36. trait Recursive[T] extends Based[T]

    Permalink

    Folds for recursive data types.

  37. trait RecursiveT[T[_[_]]] extends slamdata.Predef.Serializable

    Permalink

    This is a workaround for a certain use case (e.g., matryoshka.patterns.Diff and matryoshka.patterns.PotentialFailure).

    This is a workaround for a certain use case (e.g., matryoshka.patterns.Diff and matryoshka.patterns.PotentialFailure). Define an instance of this rather than Recursive when possible.

  38. trait ShowT[T[_[_]]] extends Serializable

    Permalink
  39. type Transform[T, F[_], G[_]] = (F[T]) ⇒ G[T]

    Permalink

    Transform a structure F to a structure G.

    Transform a structure F to a structure G. For a top-down transformation, T#Base must be F, and for a bottom-up transformation, T#Base must be G.

  40. type TransformM[M[_], T, F[_], G[_]] = (F[T]) ⇒ M[G[T]]

    Permalink

    Transform a structure F to a structure G, accumulating effects in the monad M.

    Transform a structure F to a structure G, accumulating effects in the monad M. For a top-down transformation, T#Base must be F, and for a bottom-up transformation, T#Base must be G.

  41. sealed abstract class [F[_], G[_]] extends AnyRef

    Permalink

Value Members

  1. object AlgebraIso extends Serializable

    Permalink
  2. object AlgebraPrism extends Serializable

    Permalink
  3. implicit def AlgebraZip[F[_]](implicit arg0: Functor[F]): Zip[[γ$56$](F[scalaz.Scalaz.Id[γ$56$]]) ⇒ γ$56$]

    Permalink

  4. object Based extends Serializable

    Permalink
  5. object Birecursive extends Serializable

    Permalink
  6. object BirecursiveT extends Serializable

    Permalink
  7. object CoalgebraPrism extends Serializable

    Permalink
  8. object Corecursive extends Serializable

    Permalink
  9. object CorecursiveT

    Permalink
  10. object Delay

    Permalink
  11. object ElgotAlgebraIso extends Serializable

    Permalink
  12. implicit def ElgotAlgebraMZip[W[_], M[_], F[_]](implicit arg0: Functor[W], arg1: Applicative[M], arg2: Functor[F]): Zip[[δ$58$](W[F[δ$58$]]) ⇒ M[δ$58$]]

    Permalink

  13. implicit def ElgotAlgebraZip[W[_], F[_]](implicit arg0: Functor[W], arg1: Functor[F]): Zip[[δ$58$](W[F[δ$58$]]) ⇒ scalaz.Scalaz.Id[δ$58$]]

    Permalink

  14. object Embed

    Permalink

    An extractor to make it easier to pattern-match on arbitrary Recursive structures.

    An extractor to make it easier to pattern-match on arbitrary Recursive structures.

    NB: This extractor is irrufutable and doesn’t break exhaustiveness checking.

  15. object EqualT extends Serializable

    Permalink
  16. object GAlgebraIso extends Serializable

    Permalink
  17. implicit def GAlgebraZip[W[_], F[_]](implicit arg0: Functor[W], arg1: Functor[F]): Zip[[γ$56$](F[W[γ$56$]]) ⇒ γ$56$]

    Permalink

  18. object Hole extends Hole with Product with Serializable

    Permalink
  19. object Merge extends Serializable

    Permalink
  20. object Recursive extends Serializable

    Permalink
  21. object RecursiveT extends Serializable

    Permalink
  22. object ShowT extends Serializable

    Permalink
  23. def alignThese[T, F[_]](implicit arg0: Align[F], T: Aux[T, F]): ElgotCoalgebra[[β$66$]\/[T, β$66$], F, \&/[T, T]]

    Permalink

    Aligns “These” into a single structure, short-circuting when we hit a “This” or “That”.

  24. object attrK

    Permalink

  25. object attrSelf

    Permalink

  26. object attributeAlgebra

    Permalink

  27. object attributeAlgebraM

    Permalink

    Turns any F-algebra, into a transform that attributes the tree with the results for each node.

  28. def attributeCoalgebra[F[_], B](ψ: Coalgebra[F, B]): Coalgebra[[γ$39$]EnvT[B, F, γ$39$], B]

    Permalink

  29. object attributeElgot

    Permalink

  30. object attributeElgotM

    Permalink

    A function to be called like attributeElgotM[M](myElgotAlgebraM).

  31. def binarySequence[A](relation: (A, A) ⇒ A): Coalgebra[[β$67$](A, β$67$), (A, A)]

    Permalink

    Generates an infinite sequence from two seed values.

  32. implicit def birecursiveTBirecursive[T[_[_]], F[_]](implicit arg0: BirecursiveT[T]): Aux[T[F], F]

    Permalink
  33. implicit def birecursiveTFunctor[T[_[_]], F[_, _]](implicit arg0: BirecursiveT[T], F: Bifunctor[F]): Functor[[α]T[[β$68$]F[α, β$68$]]]

    Permalink
  34. def builder[F[_], A, B](fa: F[A], children: slamdata.Predef.List[B])(implicit arg0: Traverse[F]): F[B]

    Permalink
  35. def chrono[F[_], A, B](a: A)(g: GAlgebra[[β$6$]Cofree[F, β$6$], F, B], f: GCoalgebra[[β$7$]Free[F, β$7$], F, A])(implicit arg0: Functor[F]): B

    Permalink

    Similar to a hylomorphism, this composes a futumorphism and a histomorphism.

  36. def codyna[F[_], A, B](a: A)(φ: Algebra[F, B], ψ: GCoalgebra[[β$1$]Free[F, β$1$], F, A])(implicit arg0: Functor[F]): B

    Permalink

    cata ⋘ futu

  37. def codynaM[M[_], F[_], A, B](a: A)(φ: AlgebraM[M, F, B], ψ: GCoalgebraM[[β$3$]Free[F, β$3$], M, F, A])(implicit arg0: Monad[M], arg1: Traverse[F]): M[B]

    Permalink

    cataM ⋘ futuM

  38. def coelgot[F[_], A, B](a: A)(φ: ElgotAlgebra[[β$16$](A, β$16$), F, B], ψ: Coalgebra[F, A])(implicit F: Functor[F]): B

    Permalink

    elgotZygo ⋘ ana

  39. object coelgotM

    Permalink

    elgotZygoM ⋘ anaM

  40. implicit def corecursiveTCorecursive[T[_[_]], F[_]](implicit arg0: CorecursiveT[T]): Aux[T[F], F]

    Permalink
  41. def count[T, F[_]](form: T)(implicit arg0: Equal[T], arg1: Functor[F], arg2: Foldable[F], T: Aux[T, F]): ElgotAlgebra[[β$64$](T, β$64$), F, slamdata.Predef.Int]

    Permalink

    Count the instances of form in the structure.

  42. package data

    Permalink

    This packages contains fixed-point operators as well as instances of recursion schemes for various extant data types.

    This packages contains fixed-point operators as well as instances of recursion schemes for various extant data types.

    The reason these are relegated to their own package is because, in general, you should eschew using them directly, but rather rely on the type class constraints, and only require specific types at the boundaries.

  43. def deattribute[F[_], A, B](φ: Algebra[F, B]): Algebra[[γ$40$]EnvT[A, F, γ$40$], B]

    Permalink

    Useful for ignoring the annotation when folding a cofree.

  44. implicit def delayEqual[F[_], A](implicit F: Delay[Equal, F], A: Equal[A]): Equal[F[A]]

    Permalink

    This implicit allows Delay implicits to be found when searching for a traditionally-defined instance.

  45. implicit def delayOrder[F[_], A](implicit F: Delay[Order, F], A: Order[A]): Order[F[A]]

    Permalink
  46. implicit def delayShow[F[_], A](implicit F: Delay[Show, F], A: Show[A]): Show[F[A]]

    Permalink

    See delayEqual.

  47. def distAna[F[_]]: DistributiveLaw[scalaz.Scalaz.Id, F]

    Permalink

  48. def distApo[T, F[_]](implicit arg0: Functor[F], T: Aux[T, F]): DistributiveLaw[[β$29$]\/[T, β$29$], F]

    Permalink

  49. def distApplicative[F[_], G[_]](implicit arg0: Traverse[F], arg1: Applicative[G]): DistributiveLaw[F, G]

    Permalink

    A general DistributiveLaw for the case where the scalaz.Comonad is also scalaz.Applicative.

  50. def distCata[F[_]]: DistributiveLaw[F, scalaz.Scalaz.Id]

    Permalink

  51. def distDistributive[F[_], G[_]](implicit arg0: Functor[F], arg1: Distributive[G]): DistributiveLaw[F, G]

    Permalink

    A general DistributiveLaw for the case where the scalaz.Comonad is also scalaz.Distributive.

  52. def distFutu[F[_]](implicit arg0: Functor[F]): DistributiveLaw[[β$32$]Free[F, β$32$], F]

    Permalink

  53. def distGApo[F[_], B](g: Coalgebra[F, B])(implicit arg0: Functor[F]): DistributiveLaw[[β$30$]\/[B, β$30$], F]

    Permalink

  54. def distGApoT[F[_], M[_], B](g: Coalgebra[F, B], k: DistributiveLaw[M, F])(implicit arg0: Functor[F], arg1: Functor[M]): DistributiveLaw[[γ$31$]EitherT[M, B, γ$31$], F]

    Permalink

    Allows for more complex unfolds, like futuGApo(φ0: Coalgebra[F, B], φ: GCoalgebra[λ[α => EitherT[Free[F, ?], B, α]], F, A])

  55. def distGFutu[H[_], F[_]](k: DistributiveLaw[H, F])(implicit arg0: Functor[H], arg1: Functor[F]): DistributiveLaw[[β$33$]Free[H, β$33$], F]

    Permalink

  56. def distGHisto[F[_], H[_]](k: DistributiveLaw[F, H])(implicit arg0: Functor[F], arg1: Functor[H]): DistributiveLaw[F, [β$28$]Cofree[H, β$28$]]

    Permalink

  57. def distHisto[F[_]](implicit arg0: Functor[F]): DistributiveLaw[F, [β$27$]Cofree[F, β$27$]]

    Permalink

  58. def distPara[T, F[_]](implicit arg0: Functor[F], T: Aux[T, F]): DistributiveLaw[F, [β$22$](T, β$22$)]

    Permalink

  59. def distParaT[T, W[_], F[_]](t: DistributiveLaw[F, W])(implicit arg0: Comonad[W], arg1: Functor[F], T: Aux[T, F]): DistributiveLaw[F, [γ$23$]EnvT[T, W, γ$23$]]

    Permalink

  60. def distZygo[F[_], B](g: Algebra[F, B])(implicit arg0: Functor[F]): DistributiveLaw[F, [β$24$](B, β$24$)]

    Permalink

  61. def distZygoM[F[_], M[_], B](g: AlgebraM[M, F, B], k: DistributiveLaw[F, M])(implicit arg0: Functor[F], arg1: Monad[M]): DistributiveLaw[F, [A]M[(B, A)]]

    Permalink

  62. def distZygoT[F[_], W[_], B](g: Algebra[F, B], k: DistributiveLaw[F, W])(implicit arg0: Functor[F], arg1: Comonad[W]): DistributiveLaw[F, [γ$26$]EnvT[B, W, γ$26$]]

    Permalink

  63. def dyna[F[_], A, B](a: A)(φ: (F[Cofree[F, B]]) ⇒ B, ψ: Coalgebra[F, A])(implicit arg0: Functor[F]): B

    Permalink

    histo ⋘ ana

  64. def elgot[F[_], A, B](a: A)(φ: Algebra[F, B], ψ: ElgotCoalgebra[[β$10$]\/[B, β$10$], F, A])(implicit F: Functor[F]): B

    Permalink

    cata ⋘ elgotGApo

  65. def elgotHylo[W[_], N[_], F[_], A, B](a: A)(kφ: DistributiveLaw[F, W], kψ: DistributiveLaw[N, F], φ: ElgotAlgebra[W, F, B], ψ: ElgotCoalgebra[N, F, A])(implicit arg0: Comonad[W], arg1: Monad[N], arg2: Functor[F]): B

    Permalink

    Composition of an elgot-anamorphism and an elgot-catamorphism that avoids building the intermediate recursive data structure.

    Composition of an elgot-anamorphism and an elgot-catamorphism that avoids building the intermediate recursive data structure.

    elgotCata ⋘ elgotAna

  66. def elgotM[M[_], F[_], A, B](a: A)(φ: AlgebraM[M, F, B], ψ: ElgotCoalgebraM[[β$13$]\/[B, β$13$], M, F, A])(implicit M: Monad[M], F: Traverse[F]): M[B]

    Permalink

    cataM ⋘ elgotGApoM

  67. implicit def equalTEqual[T[_[_]], F[_]](implicit arg0: Functor[F], T: EqualT[T], F: Delay[Equal, F]): Equal[T[F]]

    Permalink
  68. def find[T](f: (T) ⇒ slamdata.Predef.Boolean): (T) ⇒ \/[T, T]

    Permalink

    Returns (on the left) the first element that passes f.

  69. def foldIso[T, F[_], A](alg: AlgebraIso[F, A])(implicit arg0: Functor[F], T: Aux[T, F]): Iso[T, A]

    Permalink

    There is a fold/unfold isomorphism for any AlgebraIso.

  70. def foldPrism[T, F[_], A](alg: AlgebraPrism[F, A])(implicit arg0: Traverse[F], T: Aux[T, F]): Prism[T, A]

    Permalink

    There is a fold prism for any AlgebraPrism.

  71. def forgetAnnotation[T, R, F[_], A](t: T)(implicit arg0: Functor[F], T: Aux[T, [γ$41$]EnvT[A, F, γ$41$]], R: Aux[R, F]): R

    Permalink
  72. def ghylo[W[_], N[_], F[_], A, B](a: A)(w: DistributiveLaw[F, W], n: DistributiveLaw[N, F], f: GAlgebra[W, F, B], g: GCoalgebra[N, F, A])(implicit arg0: Comonad[W], arg1: Monad[N], arg2: Functor[F]): B

    Permalink

    A generalized version of a hylomorphism that composes any coalgebra and algebra.

    A generalized version of a hylomorphism that composes any coalgebra and algebra. (gcata ⋘ gana)

  73. def ghyloM[W[_], N[_], M[_], F[_], A, B](a: A)(w: DistributiveLaw[F, W], n: DistributiveLaw[N, F], f: GAlgebraM[W, M, F, B], g: GCoalgebraM[N, M, F, A])(implicit arg0: Comonad[W], arg1: Traverse[W], arg2: Monad[N], arg3: Traverse[N], arg4: Monad[M], arg5: Traverse[F]): M[B]

    Permalink

    A Kleisli ghylo (gcataM ⋘ ganaM)

  74. def height[F[_]](implicit arg0: Foldable[F]): Algebra[F, slamdata.Predef.Int]

    Permalink

    The largest number of hops from a node to a leaf.

  75. def holes[F[_], A](fa: F[A])(implicit arg0: Traverse[F]): F[(A, Coalgebra[F, A])]

    Permalink
  76. def holesList[F[_], A](fa: F[A])(implicit arg0: Traverse[F]): slamdata.Predef.List[(A, Coalgebra[F, A])]

    Permalink
  77. def hylo[F[_], A, B](a: A)(φ: Algebra[F, B], ψ: Coalgebra[F, A])(implicit arg0: Functor[F]): B

    Permalink

    The hylomorphism is the fundamental operation of recursion schemes.

    The hylomorphism is the fundamental operation of recursion schemes. It first applies ψ, recursively breaking an A into layers of F, then applies φ, combining the Fs into a B. It can also be seen as the (fused) composition of an anamorphism and a catamorphism that avoids building the intermediate recursive data structure.

    Annotations
    @SuppressWarnings()
  78. def hyloM[M[_], F[_], A, B](a: A)(f: AlgebraM[M, F, B], g: CoalgebraM[M, F, A])(implicit M: Monad[M], F: Traverse[F]): M[B]

    Permalink

    A Kleisli hylomorphism.

  79. package implicits

    Permalink
  80. package instances

    Permalink
  81. def join[A]: Algebra[[α]Option[(A, (α, α))], slamdata.Predef.List[A]]

    Permalink
  82. def liftT[F[_], A, B](φ: ElgotAlgebra[[β$50$](A, β$50$), F, B]): Algebra[[γ$51$]EnvT[A, F, γ$51$], B]

    Permalink

    Makes it possible to use ElgotAlgebras on EnvT.

  83. def liftTM[M[_], F[_], A, B](φ: ElgotAlgebraM[[β$52$](A, β$52$), M, F, B]): AlgebraM[M, [γ$53$]EnvT[A, F, γ$53$], B]

    Permalink

    Makes it possible to use ElgotAlgebras on EnvT.

  84. def mergeTuple[T, F[_]](implicit arg0: Functor[F], arg1: Merge[F], T: Aux[T, F]): CoalgebraM[slamdata.Predef.Option, F, (T, T)]

    Permalink

    Merges a tuple of functors, if possible.

  85. def orDefault[A, B](default: B)(f: (A) ⇒ slamdata.Predef.Option[B]): (A) ⇒ B

    Permalink

    Converts a failable fold into a non-failable, by returning the default upon failure.

  86. def orOriginal[A](f: (A) ⇒ slamdata.Predef.Option[A]): (A) ⇒ A

    Permalink

    Converts a failable fold into a non-failable, by simply returning the argument upon failure.

  87. def partition[A](implicit arg0: Order[A]): Coalgebra[[α]Option[(A, (α, α))], slamdata.Predef.List[A]]

    Permalink
  88. package patterns

    Permalink
  89. def project[F[_], A](index: slamdata.Predef.Int, fa: F[A])(implicit arg0: Foldable[F]): slamdata.Predef.Option[A]

    Permalink
  90. def quicksort[A](as: slamdata.Predef.List[A])(implicit arg0: Order[A]): slamdata.Predef.List[A]

    Permalink
  91. implicit def recursiveTRecursive[T[_[_]], F[_]](implicit arg0: RecursiveT[T]): Aux[T[F], F]

    Permalink
  92. object repeatedly

    Permalink

    Repeatedly applies the function to the result as long as it returns Some.

    Repeatedly applies the function to the result as long as it returns Some. Finally returns the last non-None value (which may be the initial input).

  93. final def repeatedlyƒ[A](f: (A) ⇒ slamdata.Predef.Option[A]): Coalgebra[[β$62$]\/[A, β$62$], A]

    Permalink
  94. def runT[F[_], A, B](ψ: ElgotCoalgebra[[β$54$]\/[A, β$54$], F, B]): Coalgebra[[γ$55$]CoEnv[A, F, γ$55$], B]

    Permalink
  95. implicit def showTShow[T[_[_]], F[_]](implicit arg0: Functor[F], T: ShowT[T], F: Delay[Show, F]): Show[T[F]]

    Permalink
  96. object size

    Permalink

    The number of nodes in this structure.

  97. def substitute[T](original: T, replacement: T)(implicit arg0: Equal[T]): (T) ⇒ \/[T, T]

    Permalink

    Replaces all instances of original in the structure with replacement.

  98. def toTree[F[_]](implicit arg0: Functor[F], arg1: Foldable[F]): Algebra[F, Tree[F[slamdata.Predef.Unit]]]

    Permalink

    Converts a fixed-point structure into a generic Tree.

    Converts a fixed-point structure into a generic Tree. One use of this is using .cata(toTree).drawTree rather than .show to get a pretty-printed tree.

  99. def transHylo[T, F[_], G[_], U, H[_]](t: T)(φ: (G[U]) ⇒ H[U], ψ: (F[T]) ⇒ G[T])(implicit arg0: Functor[F], arg1: Functor[G], arg2: Functor[H], T: Aux[T, F], U: Aux[U, H]): U

    Permalink
  100. def unfoldPrism[T, F[_], A](coalg: CoalgebraPrism[F, A])(implicit arg0: Traverse[F], T: Aux[T, F]): Prism[A, T]

    Permalink

    There is an unfold prism for any CoalgebraPrism.

  101. def universe[F[_], A](implicit arg0: Foldable[F]): ElgotAlgebra[[β$65$](A, β$65$), F, NonEmptyList[A]]

    Permalink

    Collects the set of all subtrees.

  102. def zipTuple[T, F[_]](implicit arg0: Functor[F], arg1: Zip[F], T: Aux[T, F]): Coalgebra[F, (T, T)]

    Permalink

    Combines a tuple of zippable functors.

Inherited from AnyRef

Inherited from Any

Algebras & Coalgebras

Generic algebras that operate over most functors.

Algebra Transformations

Operations that modify algebras in various ways to make them easier to combine with others.

Distributive Laws

Natural transformations required for generalized folds and unfolds.

Refolds

Traversals that apply an unfold and a fold in a single pass.

Ungrouped