Module Std.Primus

The Primus Framework inteface.

type exn = ..

Machine Exception.

The exn type is an extensible variant, and components usually register their own error constructors.

type 'a observation

an observation of a value of type a.

type 'a statement

a statement a handler that can be used to make observations.

type subscription

a cancelable subscription to an observation.

  • since 2.1.0
type system

a system definition.

  • since 2.1.0
type info

an abstracted information about Primus feature, e.g., component, system, observation, etc

  • since 2.1.0
type value

a result of computation

val bin_shape_value : Core_kernel.Bin_prot.Shape.t
val bin_size_value : value Core_kernel.Bin_prot.Size.sizer
val bin_write_value : value Core_kernel.Bin_prot.Write.writer
val bin_writer_value : value Core_kernel.Bin_prot.Type_class.writer
val bin_read_value : value Core_kernel.Bin_prot.Read.reader
val __bin_read_value__ : (int -> value) Core_kernel.Bin_prot.Read.reader
val bin_reader_value : value Core_kernel.Bin_prot.Type_class.reader
val bin_value : value Core_kernel.Bin_prot.Type_class.t
val compare_value : value -> value -> int
val sexp_of_value : value -> Ppx_sexp_conv_lib.Sexp.t
val value_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> value
type exit_status =
  1. | Normal
  2. | Exn of exn

Machine exit status. A machine may terminate normally, or abnormally with the specified exception.

type 'a effect

An abstract type that represents an effect produced by a Machine run. That type is left abstract, and has no operations, as its purpose is to disallow running machine directly with a properly initialized system.

type generator

value generator

module Observation : sig ... end

Machine Observation.

module Pos : sig ... end

A hierarchical program position.

type pos = Pos.t
val sexp_of_pos : pos -> Ppx_sexp_conv_lib.Sexp.t
module Machine : sig ... end

Primus Machine.

module System : sig ... end
module Info : sig ... end

Information about entities registered in the framework.

module Job : sig ... end

A task to run a Primus system.

module Jobs : sig ... end

A facility to register and run multiple instances of Primus.

type component = Machine.component

The Machine component.

module Analysis : sig ... end

A Primus Machine parameterized with the Knowledge monad.

module Components : sig ... end

A registry of machine components.

type 'a state = 'a Machine.state

type abbreviation for the Machine.state

module Value : sig ... end

A result of computation.

module Time : sig ... end

Machine time.

module Interpreter : sig ... end

The Interpreter.

module Linker : sig ... end

Machine Linker.

module Iterator : sig ... end

Iterator is a sequence of values of some domain.

module Generator : sig ... end

Value generators.

module Env : sig ... end

The evaluation environment.

module Memory : sig ... end

Machine Memory.

module Lisp : sig ... end

Lisp machine.

module Exn : sig ... end

Primus error.