Free

object Free extends FreeInstances
Companion
class
trait Sum
trait Mirror
class Object
trait Matchable
class Any

Type members

Types

type Sink[A, B] = Free[[_] =>> (=> A) => _$17, B]

A computation that accepts values of type A, eventually resulting in a value of type B. Note the similarity to an scalaz.iteratee.Iteratee.

A computation that accepts values of type A, eventually resulting in a value of type B. Note the similarity to an scalaz.iteratee.Iteratee.

type Source[A, B] = Free[[_] =>> (A, _$16), B]

A computation that produces values of type A, eventually resulting in a value of type B.

A computation that produces values of type A, eventually resulting in a value of type B.

type Trampoline[A] = Free[Function0, A]

A computation that can be stepped through, suspended, and paused

A computation that can be stepped through, suspended, and paused

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Inherited from
Mirror

Value members

Concrete methods

def apply[S[_], A](s: S[Free[S, A]]): Free[S, A]

Absorb a step in S into the free monad for S

Absorb a step in S into the free monad for S

def await[A]: Sink[A, A]

A sink that waits for a single value and returns it.

A sink that waits for a single value and returns it.

def joinF[S[_], A](value: Free[[_] =>> Free[S, _$8], A]): Free[S, A]

Monadic join for the higher-order monad Free

Monadic join for the higher-order monad Free

def liftF[S[_], A](value: S[A]): Free[S, A]

Suspends a value within a functor in a single step. Monadic unit for a higher-order monad.

Suspends a value within a functor in a single step. Monadic unit for a higher-order monad.

def liftFU[MA](value: => MA)(implicit MA: Unapply[[F[_]] =>> Functor[F], MA]): Free[M, A]

A version of liftF that infers the nested type constructor.

A version of liftF that infers the nested type constructor.

def pause: Trampoline[Unit]

A trampoline step that doesn't do anything.

A trampoline step that doesn't do anything.

def point[S[_], A](value: A): Free[S, A]

Return the given value in the free monad.

Return the given value in the free monad.

def produce[A](a: A): Source[A, Unit]

A source that produces the given value.

A source that produces the given value.

def pure[S[_], A](value: A): Free[S, A]

Alias for point

Alias for point

def reset[A](r: Trampoline[A]): Trampoline[A]

Collapse a trampoline to a single step.

Collapse a trampoline to a single step.

def return_[S[_], A](value: => A)(implicit S: Applicative[S]): Free[S, A]

Suspend the given computation in a single step.

Suspend the given computation in a single step.

def roll[S[_], A](value: S[Free[S, A]]): Free[S, A]

Absorb a step into the free monad.

Absorb a step into the free monad.

def suspend[S[_], A](value: => Free[S, A]): Free[S, A]

Suspend a computation in a pure step of the applicative functor S

Suspend a computation in a pure step of the applicative functor S

Implicits

Inherited implicits

implicit
def freeFoldable[F[_] : Foldable]: Foldable[[_] =>> Free[F, _$54]]
Inherited from
FreeInstances3
implicit
def freeFoldable1[F[_] : Foldable1]: Foldable1[[_] =>> Free[F, _$56]]
Inherited from
FreeInstances2
implicit
def freeMonad[S[_]]: Monad[[_] =>> Free[S, _$64]] & BindRec[[_] =>> Free[S, _$65]]
Inherited from
FreeInstances
implicit
def freeMonoid[S[_], A : Monoid]: Monoid[Free[S, A]]
Inherited from
FreeInstances
implicit
def freeSemigroup[S[_], A : Semigroup]: Semigroup[Free[S, A]]
Inherited from
FreeInstances0
implicit
def freeTraverse[F[_] : Traverse]: Traverse[[_] =>> Free[F, _$58]]
Inherited from
FreeInstances1
implicit
def freeTraverse1[F[_] : Traverse1]: Traverse1[[_] =>> Free[F, _$60]]
Inherited from
FreeInstances0
implicit
def freeZip[S[_]](implicit Z: Zip[S]): Zip[[_] =>> Free[S, _$72]]
Inherited from
FreeInstances