Enum fungi_lang::dynamics::RtVal[][src]

pub enum RtVal {
    Unit,
    Pair(RtValRecRtValRec),
    Inj1(RtValRec),
    Inj2(RtValRec),
    Roll(RtValRec),
    NameFn(NameTm),
    Nat(usize),
    Str(String),
    Bool(bool),
    ThunkAnon(EnvRecExp),
    Name(Name),
    Ref(Ref),
    Thunk(Thk),
    Pack(RtValRec),
    HostObj(HostObj),
}

Run-time values. Compare to ast::Val.

Same as Val, except that these values are (1) closed and (2) may contain run time-only structures, from the Adapton entine:

  • there are no variables ("closed") and

  • unlike values written by user in their program, run-time values may contain run-time structures, such as actual thunks and references, a la Arts from Adapton library.

Variants

Unit value

Pair of run-time values

First injection of run-time value

Second injection of run-time value

Rolled run-time value (with a recursive type)

Dynamic name term

Natural number

String

Boolean

Special-case thunk values: For implementing fix with environment-passing style

AST Names; we convert to Adapton engine names when we use the engine API

Refs from Adapton engine; they each contain a run-time value

Thunks from Adapton engine; they each evaluate to a terminal expression

Existential packings; at run-time, we forget the choice of indices

"Host objects": native Rust objects

Trait Implementations

impl Display for RtVal
[src]

Formats the value using the given formatter. Read more

impl Clone for RtVal
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for RtVal
[src]

Formats the value using the given formatter. Read more

impl Eq for RtVal
[src]

impl PartialEq for RtVal
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Hash for RtVal
[src]

Feeds this value into the given [Hasher]. Read more

Feeds a slice of this type into the given [Hasher]. Read more

Auto Trait Implementations

impl !Send for RtVal

impl !Sync for RtVal