higherkindness.droste.data

Type members

Classlikes

object Attr
object AttrF
object Coattr
object CoattrF
object Fix
sealed abstract class Mu[F[_]] extends Serializable

Mu is the least fixed point of a functor F. It is a computation that can consume a inductive noninfinite structure in one go.

Mu is the least fixed point of a functor F. It is a computation that can consume a inductive noninfinite structure in one go.

In Haskell this can more aptly be expressed as: data Mu f = Mu (forall x . (f x -> x) -> x)

Companion:
object
object Mu
Companion:
class
sealed abstract class Nu[F[_]] extends Serializable

Nu is the greatest fixed point of a functor F. It is a computation that can generate a coinductive infinite structure on demand.

Nu is the greatest fixed point of a functor F. It is a computation that can generate a coinductive infinite structure on demand.

In Haskell this can more aptly be expressed as: data Nu g = forall s . Nu (s -> g s) s

Companion:
object
object Nu
Companion:
class
object prelude extends CoattrImplicits

Types

type :<[F[_], A] = Attr[F, A]
type Attr[F[_], A]

A fix point function for types that adds an additional attribute to each node in the resulting data structure.

A fix point function for types that adds an additional attribute to each node in the resulting data structure.

This is a cofree comonad.

Implemented as an obscured alias:

type Attr[F[_], A] = (A, F[Attr[F, A]])

The companion object can be used to translate between representations.

type AttrF[F[_], A, B]

The pattern functor for Attr.

The pattern functor for Attr.

This is also the environment comonad transformer "EnvT".

Implemented as an obscured alias:

type AttrF[F[_], A, B] = (A, F[B])

The companion object can be used to translate between representations.

type Coattr[F[_], A]

A fix point function for types that allows for the replacements of nodes in the data structure with values of a different type.

A fix point function for types that allows for the replacements of nodes in the data structure with values of a different type.

This is the dual of Attr and a very basic free monad.

This implementation is not lazy and is used strictly for data.

Implemented as an obscured alias:

type Coattr[F[_], A] = Either[A, F[Coattr[F, A]]]

The companion object can be used to translate between representations.

type CoattrF[F[_], A, B]

The pattern functor for Coattr.

The pattern functor for Coattr.

The dual of AttrF.

Implemented as an obscured alias:

type CoattrF[F[_], A, B] = Either[A, F[B]]

The companion object can be used to translate between representations.

type Fix[F[_]]

A fix point function for types.

A fix point function for types.

Implemented as an obscured alias:

type Fix[F[_]] = F[Fix[F]]

The companion object can be used to translate between representations.

Value members

Concrete fields

val :<: Attr.type