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. OptionInstances
  3. NonEmptyListInstances
  4. MaybeInstances
  5. ListInstances
  6. IListInstances
  7. IdInstances
  8. FreeInstances
  9. EitherInstances
  10. DisjunctionInstances
  11. CofreeInstances
  12. AnyRef
  13. 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. trait NonEmptyListInstances extends AnyRef

    Permalink
  12. 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”.

  13. 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 cofreeBirecursive[F[_], A]: Aux[Cofree[F, A], [γ$0$]EnvT[A, F, γ$0$]]

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

    Permalink
    Definition Classes
    CofreeInstances
  8. implicit def cofreeShow[F[_]](implicit arg0: Functor[F], F: Delay[Show, F]): Delay[Show, [β$5$]Cofree[F, β$5$]]

    Permalink
    Definition Classes
    CofreeInstances
  9. object disjunction extends DisjunctionInstances

    Permalink
  10. implicit def disjunctionBirecursive[A, B]: Aux[\/[A, B], [β$0$]Const[\/[A, B], β$0$]]

    Permalink
    Definition Classes
    DisjunctionInstances
  11. object either extends EitherInstances

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

    Permalink
    Definition Classes
    EitherInstances
  13. object free extends FreeInstances

    Permalink
  14. implicit def freeBirecursive[F[_], A](implicit arg0: Functor[F]): Aux[Free[F, A], [γ$0$]CoEnv[A, F, γ$0$]]

    Permalink
    Definition Classes
    FreeInstances
  15. implicit def freeEqual[F[_]](implicit arg0: Traverse[F], F: Delay[Equal, F]): Delay[Equal, [β$2$]Free[F, β$2$]]

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

    Permalink
    Definition Classes
    FreeInstances
  17. object id extends IdInstances

    Permalink
  18. def idBirecursive[A]: Aux[A, [β$0$]Const[A, β$0$]]

    Permalink

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

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

    Definition Classes
    IdInstances
  19. object ilist extends IListInstances

    Permalink
  20. implicit def ilistBirecursive[A]: Aux[IList[A], [β$0$]ListF[A, β$0$]]

    Permalink
    Definition Classes
    IListInstances
  21. object list extends ListInstances

    Permalink
  22. implicit def listBirecursive[A]: Aux[slamdata.Predef.List[A], [β$0$]ListF[A, β$0$]]

    Permalink
    Definition Classes
    ListInstances
  23. object maybe extends MaybeInstances

    Permalink
  24. implicit def maybeBirecursive[A]: Aux[Maybe[A], [β$0$]Const[Maybe[A], β$0$]]

    Permalink
    Definition Classes
    MaybeInstances
  25. object nel extends NonEmptyListInstances

    Permalink
  26. implicit def nelBirecursive[A]: Aux[NonEmptyList[A], [β$0$]AndMaybe[A, β$0$]]

    Permalink
    Definition Classes
    NonEmptyListInstances
  27. object option extends OptionInstances

    Permalink
  28. implicit def optionBirecursive[A]: Aux[slamdata.Predef.Option[A], [β$0$]Const[Option[A], β$0$]]

    Permalink
    Definition Classes
    OptionInstances
  29. implicit val optionDelayEqual: Delay[Equal, slamdata.Predef.Option]

    Permalink
    Definition Classes
    OptionInstances
  30. implicit val optionDelayOrder: Delay[Order, slamdata.Predef.Option]

    Permalink
    Definition Classes
    OptionInstances
  31. implicit val optionDelayShow: Delay[Show, slamdata.Predef.Option]

    Permalink
    Definition Classes
    OptionInstances

Inherited from OptionInstances

Inherited from NonEmptyListInstances

Inherited from MaybeInstances

Inherited from ListInstances

Inherited from IListInstances

Inherited from IdInstances

Inherited from FreeInstances

Inherited from EitherInstances

Inherited from DisjunctionInstances

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