FreeToolkit

trait FreeToolkit extends Toolkit

A Toolkit whose representation of a program (Toolkit.Prg) is a free monad over some algebra (FreeToolkit.Lang).

FreeToolkit is typically created by composing multiple Modules.

trait Toolkit
class Object
trait Matchable
class Any

Type members

Types

type Lang[K[_], A]
override type Prg[A] = FreeK[Lang, A]
override type State = StateK[Prg]
type StateK[K[_]]

Value members

Abstract methods

def emptyK[K[_]]: StateK[K]

Concrete methods

override def empty: State
Definition Classes
def interpret[A](p: Prg[A], s: State): (State, A)

Inherited methods

def interpret0[A](p: Prg[A]): (State, A)
Inherited from:
Toolkit
def interpretAll[F[_]](ps: F[Prg[Unit]], s: State)(implicit F: Foldable[F]): State
Inherited from:
Toolkit

Abstract fields

Concrete fields

lazy val interpreter: NaturalTransformation[Prg, [_] =>> StateT[State, Id, _$5]]

Implicits

Inherited implicits

implicit def prgMonad: Monad[Prg]
Inherited from:
Toolkit