Trait/Object

matryoshka

FunctorT

Related Docs: object FunctorT | package matryoshka

Permalink

trait FunctorT[T[_[_]]] extends Serializable

The operations here are very similar to those in Recursive and Corecursive. The usual names (cata, ana, etc.) are prefixed with trans and behave generally the same, except 1. the A of the [un]fold is restricted to T[G], but 2. the [co]algebra shape is like F[A] => G[A] rather than F[A] => A.

In exchange, the [un]folds are available to more types (EG, folds available to Free and unfolds available to Cofree).

There are two additional operations – transCataT and transAnaT. The distinction between these and transCata/transAna is that this allows the algebra to return the context (the outer T) to be used, whereas transCata always uses the original context of the argument to f.

This is noticable when T is Cofree. In this function, the result may have any head the algebra desires, whereas in transCata, it can only have the head of the argument to f.

Docs for operations, since they seem to break scaladoc if put in the right place:

* map – very roughly like Uniplate’s descend * transCataT – akin to Uniplate’s transform * transAnaT – akin to Uniplate’s topDownTransform * transCata – akin to Fixplate’s restructure

Linear Supertypes
Serializable, Serializable, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. FunctorT
  2. Serializable
  3. Serializable
  4. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def getClass(): Class[_]

    Permalink
    Definition Classes
    Any
  2. abstract def map[F[_], G[_]](t: T[F])(f: (F[T[F]]) ⇒ G[T[G]])(implicit arg0: Functor[F], arg1: Functor[G]): T[G]

    Permalink

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  6. def hashCode(): Int

    Permalink
    Definition Classes
    Any
  7. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  8. def toString(): String

    Permalink
    Definition Classes
    Any
  9. def topDownCata[F[_], A](t: T[F], a: A)(f: (A, T[F]) ⇒ (A, T[F]))(implicit arg0: Functor[F]): T[F]

    Permalink
  10. def transAna[F[_], G[_]](t: T[F])(f: (F[T[F]]) ⇒ G[T[F]])(implicit arg0: Functor[F], arg1: Functor[G]): T[G]

    Permalink
  11. def transAnaT[F[_]](t: T[F])(f: (T[F]) ⇒ T[F])(implicit arg0: Functor[F]): T[F]

    Permalink
  12. def transApo[F[_], G[_]](t: T[F])(f: (F[T[F]]) ⇒ G[\/[T[G], T[F]]])(implicit arg0: Functor[F], arg1: Functor[G]): T[G]

    Permalink
  13. def transCata[F[_], G[_]](t: T[F])(f: (F[T[G]]) ⇒ G[T[G]])(implicit arg0: Functor[F], arg1: Functor[G]): T[G]

    Permalink
  14. def transCataT[F[_]](t: T[F])(f: (T[F]) ⇒ T[F])(implicit arg0: Functor[F]): T[F]

    Permalink
  15. def transPara[F[_], G[_]](t: T[F])(f: (F[(T[F], T[G])]) ⇒ G[T[G]])(implicit arg0: Functor[F], arg1: Functor[G]): T[G]

    Permalink
  16. def transPostpro[F[_], G[_]](t: T[F])(f: (F[T[F]]) ⇒ G[T[F]])(g: ~>[G, G])(implicit arg0: Functor[F], arg1: Functor[G]): T[G]

    Permalink
  17. def transPrepro[F[_], G[_]](t: T[F])(f: (F[T[G]]) ⇒ G[T[G]])(g: ~>[F, F])(implicit arg0: Functor[F], arg1: Functor[G]): T[G]

    Permalink
  18. def translate[F[_], G[_]](t: T[F])(f: ~>[F, G])(implicit arg0: Functor[F], arg1: Functor[G]): T[G]

    Permalink

Inherited from Serializable

Inherited from Serializable

Inherited from Any

Ungrouped