Package

matryoshka

data

Permalink

package data

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.

Linear Supertypes
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. data
  2. MaybeInstances
  3. IListInstances
  4. IdInstances
  5. FreeInstances
  6. EitherInstances
  7. CofreeInstances
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait CofreeInstances extends AnyRef

    Permalink
  2. trait DisjunctionInstances extends AnyRef

    Permalink
  3. trait EitherInstances extends AnyRef

    Permalink
  4. final case class Fix[F[_]](unFix: F[Fix[F]]) extends Product with Serializable

    Permalink

    This is the simplest fixpoint type, implemented with general recursion.

  5. trait FreeInstances extends AnyRef

    Permalink
  6. trait IListInstances extends AnyRef

    Permalink
  7. trait IdInstances extends AnyRef

    Permalink
  8. trait ListInstances extends AnyRef

    Permalink
  9. trait MaybeInstances extends AnyRef

    Permalink
  10. final case class Mu[F[_]](unMu: ~>[[β$1$](F[β$1$]) ⇒ β$1$, scalaz.Scalaz.Id]) extends Product with Serializable

    Permalink

    This is for inductive (finite) recursive structures, models the concept of “data”, aka, the “least fixed point”.

  11. sealed abstract class Nu[F[_]] extends AnyRef

    Permalink

    This is for coinductive (potentially infinite) recursive structures, models the concept of “codata”, aka, the “greatest fixed point”.

  12. trait OptionInstances extends AnyRef

    Permalink

Value Members

  1. object Fix extends Serializable

    Permalink
  2. object Mu extends Serializable

    Permalink
  3. object Nu

    Permalink
  4. def attributePara[T, F[_], A](f: GAlgebra[[β$0$](T, β$0$), F, A])(implicit arg0: Functor[F], T: Aux[T, F]): Algebra[F, Cofree[F, A]]

    Permalink

    NB: Since Cofree carries the functor, the resulting algebra is a cata, not a para.

  5. object cofree extends CofreeInstances

    Permalink
  6. implicit def cofreeCorecursive[F[_], A]: Aux[Cofree[F, A], [γ$1$]EnvT[A, F, γ$1$]]

    Permalink
    Definition Classes
    CofreeInstances
  7. implicit def cofreeEqual[F[_]](implicit F: Delay[Equal, F]): Delay[Equal, [β$2$]Cofree[F, β$2$]]

    Permalink
    Definition Classes
    CofreeInstances
  8. implicit def cofreeRecursive[F[_], A]: Aux[Cofree[F, A], [γ$0$]EnvT[A, F, γ$0$]]

    Permalink
    Definition Classes
    CofreeInstances
  9. implicit def cofreeShow[F[_]](implicit F: Delay[Show, F]): Delay[Show, [β$4$]Cofree[F, β$4$]]

    Permalink
    Definition Classes
    CofreeInstances
  10. object disjunction extends DisjunctionInstances

    Permalink
  11. object either extends EitherInstances

    Permalink
  12. implicit def eitherCorecursive[A, B]: Aux[slamdata.Predef.Either[A, B], [β$1$]Const[Either[A, B], β$1$]]

    Permalink
    Definition Classes
    EitherInstances
  13. implicit def eitherRecursive[A, B]: Aux[slamdata.Predef.Either[A, B], [β$0$]Const[Either[A, B], β$0$]]

    Permalink
    Definition Classes
    EitherInstances
  14. object free extends FreeInstances

    Permalink
  15. implicit def freeCorecursive[F[_], A](implicit arg0: Functor[F]): Aux[Free[F, A], [γ$1$]CoEnv[A, F, γ$1$]]

    Permalink
    Definition Classes
    FreeInstances
  16. implicit def freeEqual[F[_]](implicit arg0: Functor[F], F: Delay[Equal, F]): Delay[Equal, [β$3$]Free[F, β$3$]]

    Permalink
    Definition Classes
    FreeInstances
  17. implicit def freeRecursive[F[_], A](implicit arg0: Functor[F]): Aux[Free[F, A], [γ$0$]CoEnv[A, F, γ$0$]]

    Permalink
    Definition Classes
    FreeInstances
  18. implicit def freeShow[F[_]](implicit arg0: Functor[F], F: Delay[Show, F]): Delay[Show, [β$5$]Free[F, β$5$]]

    Permalink
    Definition Classes
    FreeInstances
  19. object id extends IdInstances

    Permalink
  20. def idCorecursive[A]: Aux[A, [β$1$]Const[A, β$1$]]

    Permalink
    Definition Classes
    IdInstances
  21. def idRecursive[A]: Aux[A, [β$0$]Const[A, β$0$]]

    Permalink

    This is a single (low-priority) instance to provide folds/unfolds for all all non-recursive data types.

    This is a single (low-priority) instance to provide folds/unfolds for all all non-recursive data types.

    Definition Classes
    IdInstances
  22. object ilist extends IListInstances

    Permalink
  23. implicit def ilistCorecursive[A]: Aux[IList[A], [β$1$]ListF[A, β$1$]]

    Permalink
    Definition Classes
    IListInstances
  24. implicit def ilistRecursive[A]: Aux[IList[A], [β$0$]ListF[A, β$0$]]

    Permalink
    Definition Classes
    IListInstances
  25. object list extends ListInstances

    Permalink
  26. object maybe extends MaybeInstances

    Permalink
  27. implicit def maybeCorecursive[A]: Aux[Maybe[A], [β$1$]Const[Maybe[A], β$1$]]

    Permalink
    Definition Classes
    MaybeInstances
  28. implicit def maybeRecursive[A]: Aux[Maybe[A], [β$0$]Const[Maybe[A], β$0$]]

    Permalink
    Definition Classes
    MaybeInstances
  29. object option extends OptionInstances

    Permalink

Inherited from MaybeInstances

Inherited from IListInstances

Inherited from IdInstances

Inherited from FreeInstances

Inherited from EitherInstances

Inherited from CofreeInstances

Inherited from AnyRef

Inherited from Any

Algebra Transformations

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

Ungrouped