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.
- Grouped
- Alphabetic
- By Inheritance
- data
- MaybeInstances
- IListInstances
- IdInstances
- FreeInstances
- EitherInstances
- CofreeInstances
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- trait CofreeInstances extends AnyRef
- trait DisjunctionInstances extends AnyRef
- trait EitherInstances extends AnyRef
-
final
case class
Fix
[F[_]](unFix: F[Fix[F]]) extends Product with Serializable
This is the simplest fixpoint type, implemented with general recursion.
- trait FreeInstances extends AnyRef
- trait IListInstances extends AnyRef
- trait IdInstances extends AnyRef
- trait ListInstances extends AnyRef
- trait MaybeInstances extends AnyRef
-
final
case class
Mu
[F[_]](unMu: ~>[[β$1$](F[β$1$]) ⇒ β$1$, scalaz.Scalaz.Id]) extends Product with Serializable
This is for inductive (finite) recursive structures, models the concept of “data”, aka, the “least fixed point”.
-
sealed abstract
class
Nu
[F[_]] extends AnyRef
This is for coinductive (potentially infinite) recursive structures, models the concept of “codata”, aka, the “greatest fixed point”.
- trait OptionInstances extends AnyRef
Value Members
-
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]]
NB: Since Cofree carries the functor, the resulting algebra is a cata, not a para.
-
implicit
def
cofreeCorecursive[F[_], A]: Aux[Cofree[F, A], [γ$1$]EnvT[A, F, γ$1$]]
- Definition Classes
- CofreeInstances
-
implicit
def
cofreeEqual[F[_]](implicit F: Delay[Equal, F]): Delay[Equal, [β$2$]Cofree[F, β$2$]]
- Definition Classes
- CofreeInstances
-
implicit
def
cofreeRecursive[F[_], A]: Aux[Cofree[F, A], [γ$0$]EnvT[A, F, γ$0$]]
- Definition Classes
- CofreeInstances
-
implicit
def
cofreeShow[F[_]](implicit F: Delay[Show, F]): Delay[Show, [β$4$]Cofree[F, β$4$]]
- Definition Classes
- CofreeInstances
-
implicit
def
eitherCorecursive[A, B]: Aux[slamdata.Predef.Either[A, B], [β$1$]Const[Either[A, B], β$1$]]
- Definition Classes
- EitherInstances
-
implicit
def
eitherRecursive[A, B]: Aux[slamdata.Predef.Either[A, B], [β$0$]Const[Either[A, B], β$0$]]
- Definition Classes
- EitherInstances
-
implicit
def
freeCorecursive[F[_], A](implicit arg0: Functor[F]): Aux[Free[F, A], [γ$1$]CoEnv[A, F, γ$1$]]
- Definition Classes
- FreeInstances
-
implicit
def
freeEqual[F[_]](implicit arg0: Functor[F], F: Delay[Equal, F]): Delay[Equal, [β$3$]Free[F, β$3$]]
- Definition Classes
- FreeInstances
-
implicit
def
freeRecursive[F[_], A](implicit arg0: Functor[F]): Aux[Free[F, A], [γ$0$]CoEnv[A, F, γ$0$]]
- Definition Classes
- FreeInstances
-
implicit
def
freeShow[F[_]](implicit arg0: Functor[F], F: Delay[Show, F]): Delay[Show, [β$5$]Free[F, β$5$]]
- Definition Classes
- FreeInstances
-
def
idCorecursive[A]: Aux[A, [β$1$]Const[A, β$1$]]
- Definition Classes
- IdInstances
-
def
idRecursive[A]: Aux[A, [β$0$]Const[A, β$0$]]
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
-
implicit
def
ilistCorecursive[A]: Aux[IList[A], [β$1$]ListF[A, β$1$]]
- Definition Classes
- IListInstances
-
implicit
def
ilistRecursive[A]: Aux[IList[A], [β$0$]ListF[A, β$0$]]
- Definition Classes
- IListInstances
-
implicit
def
maybeCorecursive[A]: Aux[Maybe[A], [β$1$]Const[Maybe[A], β$1$]]
- Definition Classes
- MaybeInstances
-
implicit
def
maybeRecursive[A]: Aux[Maybe[A], [β$0$]Const[Maybe[A], β$0$]]
- Definition Classes
- MaybeInstances
- object Fix extends Serializable
- object Mu extends Serializable
- object Nu
- object cofree extends CofreeInstances
- object disjunction extends DisjunctionInstances
- object either extends EitherInstances
- object free extends FreeInstances
- object id extends IdInstances
- object ilist extends IListInstances
- object list extends ListInstances
- object maybe extends MaybeInstances
- object option extends OptionInstances
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.