Toolkit

trait Toolkit

Provides implementations of multiple APIs. The specific APIs provided by a Toolkit are defined in subclasses, such as PropagationToolkit, BranchingToolkit, RelToolkit, etc.

The unifying feature across all provided APIs is that programs written against those APIs can be represented by a type Toolkit.Prg, which is at least a monad. Such programs can be interpreted (Toolkit.interpret) as state transitions on Toolkit.State.

class Object
trait Matchable
class Any

Type members

Types

type Prg[_]
type State

Value members

Abstract methods

def interpret[A](p: Prg[A], s: State): (State, A)

Concrete methods

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

Implicits

Implicits

implicit def prgMonad: Monad[Prg]