matryoshka
package
matryoshka
Type Members
-
type
Algebra[F[_], A] = (F[scalaz.Scalaz.Id[A]]) ⇒ scalaz.Scalaz.Id[A]
-
type
AlgebraIso[F[_], A] = PIso[F[scalaz.Scalaz.Id[A]], F[scalaz.Scalaz.Id[A]], A, A]
-
type
AlgebraM[M[_], F[_], A] = (F[scalaz.Scalaz.Id[A]]) ⇒ M[A]
-
-
type
AlgebraPrism[F[_], A] = PPrism[F[A], F[A], A, A]
-
type
AlgebraicTransform[T[_[_]], F[_], G[_]] = (F[scalaz.Scalaz.Id[T[G]]]) ⇒ scalaz.Scalaz.Id[G[T[G]]]
-
type
AlgebraicTransformM[T[_[_]], M[_], F[_], G[_]] = (F[scalaz.Scalaz.Id[T[G]]]) ⇒ M[G[T[G]]]
-
type
Coalgebra[F[_], A] = (A) ⇒ scalaz.Scalaz.Id[F[scalaz.Scalaz.Id[A]]]
-
type
CoalgebraM[M[_], F[_], A] = (A) ⇒ M[F[scalaz.Scalaz.Id[A]]]
-
-
type
CoalgebraPrism[F[_], A] = PPrism[A, A, F[A], F[A]]
-
type
CoalgebraicTransform[T[_[_]], F[_], G[_]] = (F[T[F]]) ⇒ scalaz.Scalaz.Id[G[scalaz.Scalaz.Id[T[F]]]]
-
type
CoalgebraicTransformM[T[_[_]], N[_], F[_], G[_]] = (F[T[F]]) ⇒ N[G[scalaz.Scalaz.Id[T[F]]]]
-
-
-
-
sealed
class
CofreeOps[F[_], A] extends AnyRef
-
-
implicit final
class
CorecursiveOps[T[_[_]], F[_]] extends AnyRef
-
type
Delay[F[_], G[_]] = NaturalTransformation[F, [A]F[G[A]]]
-
type
DistributiveLaw[F[_], G[_]] = NaturalTransformation[[A]F[G[A]], [A]G[F[A]]]
-
type
ElgotAlgebra[W[_], F[_], A] = (W[F[A]]) ⇒ scalaz.Scalaz.Id[A]
-
type
ElgotAlgebraM[W[_], M[_], F[_], A] = (W[F[A]]) ⇒ M[A]
-
type
ElgotCoalgebra[E[_], F[_], A] = (A) ⇒ scalaz.Scalaz.Id[E[F[A]]]
-
type
ElgotCoalgebraM[E[_], M[_], F[_], A] = (A) ⇒ M[E[F[A]]]
-
final
case class
Fix[F[_]](unFix: F[Fix[F]]) extends Product with Serializable
-
-
sealed
class
FreeOps[F[_], A] extends AnyRef
-
-
type
GAlgebra[W[_], F[_], A] = (F[W[A]]) ⇒ scalaz.Scalaz.Id[A]
-
type
GAlgebraIso[W[_], M[_], F[_], A] = PIso[F[W[A]], F[M[A]], A, A]
-
type
GAlgebraM[W[_], M[_], F[_], A] = (F[W[A]]) ⇒ M[A]
-
type
GAlgebraicTransform[T[_[_]], W[_], F[_], G[_]] = (F[W[T[G]]]) ⇒ scalaz.Scalaz.Id[G[T[G]]]
-
type
GAlgebraicTransformM[T[_[_]], W[_], M[_], F[_], G[_]] = (F[W[T[G]]]) ⇒ M[G[T[G]]]
-
type
GCoalgebra[N[_], F[_], A] = (A) ⇒ scalaz.Scalaz.Id[F[N[A]]]
-
type
GCoalgebraM[N[_], M[_], F[_], A] = (A) ⇒ M[F[N[A]]]
-
type
GCoalgebraicTransform[T[_[_]], M[_], F[_], G[_]] = (F[T[F]]) ⇒ scalaz.Scalaz.Id[G[M[T[F]]]]
-
type
GCoalgebraicTransformM[T[_[_]], M[_], N[_], F[_], G[_]] = (F[T[F]]) ⇒ N[G[M[T[F]]]]
-
sealed
trait
Hole extends AnyRef
-
sealed
class
IdOps[A] extends AnyRef
-
-
final
case class
Mu[F[_]](unMu: ~>[[A](F[A]) ⇒ A, scalaz.Scalaz.Id]) extends Product with Serializable
-
sealed abstract
class
Nu[F[_]] extends AnyRef
-
-
-
sealed abstract
class
∘[F[_], G[_]] extends AnyRef
Value Members
-
-
-
implicit
def
AlgebraZip[F[_]](implicit arg0: Functor[F]): Zip[[γ](F[scalaz.Scalaz.Id[γ]]) ⇒ γ]
-
-
-
implicit
def
ElgotAlgebraMZip[W[_], M[_], F[_]](implicit arg0: Functor[W], arg1: Applicative[M], arg2: Functor[F]): Zip[[δ](W[F[δ]]) ⇒ M[δ]]
-
implicit
def
ElgotAlgebraZip[W[_], F[_]](implicit arg0: Functor[W], arg1: Functor[F]): Zip[[δ](W[F[δ]]) ⇒ scalaz.Scalaz.Id[δ]]
-
-
-
-
-
implicit
def
GAlgebraZip[W[_], F[_]](implicit arg0: Functor[W], arg1: Functor[F]): Zip[[γ](F[W[γ]]) ⇒ γ]
-
val
Hole: Hole
-
-
-
object
Nu
-
-
-
def
alignThese[T[_[_]], F[_]](implicit arg0: Recursive[T], arg1: Align[F]): ElgotCoalgebra[[β]\/[T[F], β], F, \&/[T[F], T[F]]]
-
def
attrK[F[_], A](k: A)(implicit arg0: Functor[F]): (F[Cofree[F, A]]) ⇒ scalaz.Scalaz.Id[Cofree[F, A]]
-
def
attrSelf[T[_[_]], F[_]](implicit arg0: Corecursive[T], arg1: Functor[F]): (F[Cofree[F, T[F]]]) ⇒ scalaz.Scalaz.Id[Cofree[F, T[F]]]
-
def
attributeAlgebra[F[_], A](f: (F[A]) ⇒ A)(implicit arg0: Functor[F]): (F[Cofree[F, A]]) ⇒ scalaz.Scalaz.Id[Cofree[F, A]]
-
def
attributeAlgebraM[F[_], M[_], A](f: (F[A]) ⇒ M[A])(implicit arg0: Functor[F], arg1: Functor[M]): (F[Cofree[F, A]]) ⇒ M[Cofree[F, A]]
-
def
attributeAna[F[_], A](a: A)(ψ: (A) ⇒ F[A])(implicit arg0: Functor[F]): Cofree[F, A]
-
def
attributeAnaM[M[_], F[_], A](a: A)(ψ: (A) ⇒ M[F[A]])(implicit arg0: Monad[M], arg1: Traverse[F]): M[Cofree[F, A]]
-
def
attributeCoalgebra[F[_], B](ψ: Coalgebra[F, B]): Coalgebra[[γ]EnvT[B, F, γ], B]
-
-
def
attributePara[T[_[_]], F[_], A](f: (F[(T[F], A)]) ⇒ A)(implicit arg0: Corecursive[T], arg1: Functor[F]): (F[Cofree[F, A]]) ⇒ Cofree[F, A]
-
def
binarySequence[A](relation: (A, A) ⇒ A): Coalgebra[[β](A, β), (A, A)]
-
def
builder[F[_], A, B](fa: F[A], children: List[B])(implicit arg0: Traverse[F]): F[B]
-
def
chrono[F[_], A, B](a: A)(g: (F[Cofree[F, B]]) ⇒ B, f: (A) ⇒ F[Free[F, A]])(implicit arg0: Functor[F]): B
-
def
codyna[F[_], A, B](a: A)(φ: (F[B]) ⇒ B, ψ: (A) ⇒ F[Free[F, A]])(implicit arg0: Functor[F]): B
-
def
codynaM[M[_], F[_], A, B](a: A)(φ: (F[B]) ⇒ M[B], ψ: (A) ⇒ M[F[Free[F, A]]])(implicit arg0: Monad[M], arg1: Traverse[F]): M[B]
-
def
coelgot[F[_], A, B](a: A)(φ: ((A, F[B])) ⇒ B, ψ: (A) ⇒ F[A])(implicit arg0: Functor[F]): B
-
-
def
cofCata[F[_], A, B](t: Cofree[F, A])(φ: ElgotAlgebra[[β](A, β), F, B])(implicit arg0: Functor[F]): B
-
def
cofCataM[F[_], M[_], A, B](t: Cofree[F, A])(φ: ElgotAlgebraM[[β](A, β), M, F, B])(implicit arg0: Traverse[F], arg1: Monad[M]): M[B]
-
-
-
implicit
def
cofreeCorecursive[A](implicit arg0: Monoid[A]): Corecursive[[α[_$3]]Cofree[α, A]]
-
implicit
def
cofreeEqual[F[_]](implicit F: Delay[Equal, F]): Delay[Equal, [β]Cofree[F, β]]
-
implicit
def
cofreeRecursive[A]: Recursive[[α[_$1]]Cofree[α, A]]
-
implicit
def
cofreeShow[F[_]](implicit F: Delay[Show, F]): Delay[Show, [β]Cofree[F, β]]
-
implicit
def
cofreeTraverseT[A]: TraverseT[[α[_$5]]Cofree[α, A]]
-
def
colambek[T[_[_]], F[_]](ft: F[T[F]])(implicit arg0: Corecursive[T], arg1: Recursive[T], arg2: Functor[F]): T[F]
-
def
count[T[_[_]], F[_]](form: T[F])(implicit arg0: Recursive[T], arg1: Functor[F], arg2: Foldable[F]): (F[(T[F], Int)]) ⇒ Int
-
implicit
def
delayEqual[F[_], A](implicit A: Equal[A], F: Delay[Equal, F]): Equal[F[A]]
-
implicit
def
delayShow[F[_], A](implicit A: Show[A], F: Delay[Show, F]): Show[F[A]]
-
def
distAna[F[_]]: DistributiveLaw[scalaz.Scalaz.Id, F]
-
def
distApo[T[_[_]], F[_]](implicit arg0: Recursive[T], arg1: Functor[F]): DistributiveLaw[[β]\/[T[F], β], F]
-
def
distCata[F[_]]: DistributiveLaw[F, scalaz.Scalaz.Id]
-
def
distFutu[F[_]](implicit arg0: Functor[F]): DistributiveLaw[[β]Free[F, β], F]
-
def
distGApo[F[_], B](g: (B) ⇒ F[B])(implicit arg0: Functor[F]): DistributiveLaw[[β]\/[B, β], F]
-
def
distGFutu[H[_], F[_]](k: DistributiveLaw[H, F])(implicit H: Functor[H], F: Functor[F]): DistributiveLaw[[β]Free[H, β], F]
-
def
distGHisto[F[_], H[_]](k: DistributiveLaw[F, H])(implicit F: Functor[F], H: Functor[H]): DistributiveLaw[F, [β]Cofree[H, β]]
-
def
distHisto[F[_]](implicit arg0: Functor[F]): DistributiveLaw[F, [β]Cofree[F, β]]
-
def
distPara[T[_[_]], F[_]](implicit arg0: Corecursive[T], arg1: Functor[F]): DistributiveLaw[F, [β](T[F], β)]
-
def
distParaT[T[_[_]], F[_], W[_]](t: DistributiveLaw[F, W])(implicit arg0: Functor[F], arg1: Comonad[W], T: Corecursive[T]): DistributiveLaw[F, [γ]EnvT[T[F], W, γ]]
-
def
distZygo[F[_], B](g: (F[B]) ⇒ B)(implicit arg0: Functor[F]): DistributiveLaw[F, [β](B, β)]
-
def
distZygoT[F[_], W[_], B](g: (F[B]) ⇒ B, k: DistributiveLaw[F, W])(implicit arg0: Comonad[W], F: Functor[F]): DistributiveLaw[F, [γ]EnvT[B, W, γ]]
-
def
dyna[F[_], A, B](a: A)(φ: (F[Cofree[F, B]]) ⇒ B, ψ: (A) ⇒ F[A])(implicit arg0: Functor[F]): B
-
def
elgot[F[_], A, B](a: A)(φ: (F[B]) ⇒ B, ψ: (A) ⇒ \/[B, F[A]])(implicit arg0: Functor[F]): B
-
def
foldIso[T[_[_]], F[_], A](alg: AlgebraIso[F, A])(implicit arg0: Corecursive[T], arg1: Recursive[T], arg2: Functor[F]): Iso[T[F], A]
-
def
foldPrism[T[_[_]], F[_], A](alg: AlgebraPrism[F, A])(implicit arg0: Corecursive[T], arg1: Recursive[T], arg2: Traverse[F]): Prism[T[F], A]
-
-
def
freeAna[F[_], A, B](a: A)(ψ: (A) ⇒ \/[B, F[A]])(implicit arg0: Functor[F]): Free[F, B]
-
implicit
def
freeCorecursive[A]: Corecursive[[α[_$1]]Free[α, A]]
-
implicit
def
freeEqual[F[_]](implicit arg0: Functor[F], F: Delay[Equal, F]): Delay[Equal, [β]Free[F, β]]
-
implicit
def
freeShow[F[_]](implicit arg0: Functor[F], F: Delay[Show, F]): Delay[Show, [β]Free[F, β]]
-
implicit
def
freeTraverseT[A]: TraverseT[[α[_$3]]Free[α, A]]
-
def
ghylo[W[_], M[_], F[_], A, B](a: A)(w: DistributiveLaw[F, W], m: DistributiveLaw[M, F], f: (F[W[B]]) ⇒ B, g: (A) ⇒ F[M[A]])(implicit arg0: Comonad[W], arg1: Functor[F], M: Monad[M]): B
-
def
ghyloM[W[_], M[_], N[_], F[_], A, B](a: A)(w: DistributiveLaw[F, W], m: DistributiveLaw[M, F], f: (F[W[B]]) ⇒ N[B], g: (A) ⇒ N[F[M[A]]])(implicit arg0: Comonad[W], arg1: Traverse[W], arg2: Traverse[M], arg3: Monad[N], arg4: Traverse[F], M: Monad[M]): N[B]
-
def
height[F[_]](implicit arg0: Foldable[F]): (F[Int]) ⇒ Int
-
def
holes[F[_], A](fa: F[A])(implicit arg0: Traverse[F]): F[(A, (A) ⇒ F[A])]
-
def
holesList[F[_], A](fa: F[A])(implicit arg0: Traverse[F]): List[(A, (A) ⇒ F[A])]
-
def
hylo[F[_], A, B](a: A)(f: (F[B]) ⇒ B, g: (A) ⇒ F[A])(implicit arg0: Functor[F]): B
-
def
hyloM[M[_], F[_], A, B](a: A)(f: (F[B]) ⇒ M[B], g: (A) ⇒ M[F[A]])(implicit arg0: Monad[M], arg1: Traverse[F]): M[B]
-
-
def
interpretCata[F[_], A](t: Free[F, A])(φ: (F[A]) ⇒ A)(implicit arg0: Functor[F]): A
-
def
lambek[T[_[_]], F[_]](tf: T[F])(implicit arg0: Corecursive[T], arg1: Recursive[T], arg2: Functor[F]): F[T[F]]
-
def
lambekIso[T[_[_]], F[_]](implicit arg0: Corecursive[T], arg1: Recursive[T], arg2: Functor[F]): AlgebraIso[F, T[F]]
-
def
mergeTuple[T[_[_]], F[_]](implicit arg0: Recursive[T], arg1: Functor[F], arg2: Merge[F]): CoalgebraM[Option, F, (T[F], T[F])]
-
def
orDefault[A, B](default: B)(f: (A) ⇒ Option[B]): (A) ⇒ B
-
def
orOriginal[A](f: (A) ⇒ Option[A]): (A) ⇒ A
-
-
def
project[F[_], A](index: Int, fa: F[A])(implicit arg0: Foldable[F]): Option[A]
-
def
recCorecIso[T[_[_]], F[_]](implicit arg0: Recursive[T], arg1: Corecursive[T], arg2: Functor[F]): AlgebraIso[F, T[F]]
-
def
repeatedly[A](f: (A) ⇒ Option[A]): (A) ⇒ A
-
def
size[F[_]](implicit arg0: Foldable[F]): (F[Int]) ⇒ Int
-
implicit
def
toAlgebraOps[F[_], A](a: Algebra[F, A]): AlgebraOps[F, A]
-
implicit
def
toCoalgebraOps[F[_], A](a: Coalgebra[F, A]): CoalgebraOps[F, A]
-
implicit
def
toCofreeOps[F[_], A](a: Cofree[F, A]): CofreeOps[F, A]
-
implicit
def
toFreeOps[F[_], A](a: Free[F, A]): FreeOps[F, A]
-
implicit
def
toIdOps[A](a: A): IdOps[A]
-
def
toTree[F[_]](implicit arg0: Functor[F], arg1: Foldable[F]): Algebra[F, Tree[F[Unit]]]
-
def
transformToAlgebra[T[_[_]], W[_], M[_], F[_], G[_]](self: GAlgebraicTransformM[T, W, M, F, G])(implicit arg0: Corecursive[T], arg1: Functor[M], arg2: Functor[G]): GAlgebraM[W, M, F, T[G]]
-
def
unfoldPrism[T[_[_]], F[_], A](coalg: CoalgebraPrism[F, A])(implicit arg0: Corecursive[T], arg1: Recursive[T], arg2: Traverse[F]): Prism[A, T[F]]
-
def
zipTuple[T[_[_]], F[_]](implicit arg0: Recursive[T], arg1: Functor[F], arg2: Zip[F]): Coalgebra[F, (T[F], T[F])]
Algebras & Coalgebras
Algebra Transformations
Distributive Laws
Refolds
Ungrouped
Generalized folds, unfolds, and refolds.