eyg/interpreter/value
Types
pub type Switch(context) {
Cons
Extend(label: String)
Overwrite(label: String)
Select(label: String)
Tag(label: String)
Match(label: String)
NoCases
Perform(label: String)
Handle(label: String)
Resume(context)
Builtin(identifier: String)
}
Constructors
-
Cons -
Extend(label: String) -
Overwrite(label: String) -
Select(label: String) -
Tag(label: String) -
Match(label: String) -
NoCases -
Perform(label: String) -
Handle(label: String) -
Resume(context) -
Builtin(identifier: String)
pub type Value(m, context) {
Binary(value: BitArray)
Integer(value: Int)
String(value: String)
LinkedList(elements: List(Value(m, context)))
Record(fields: dict.Dict(String, Value(m, context)))
Tagged(label: String, value: Value(m, context))
Closure(
param: String,
body: #(tree.Expression(m), m),
env: List(#(String, Value(m, context))),
)
Partial(
switch: Switch(context),
arguments: List(Value(m, context)),
)
}
Constructors
-
Binary(value: BitArray) -
Integer(value: Int) -
String(value: String) -
LinkedList(elements: List(Value(m, context))) -
-
Tagged(label: String, value: Value(m, context)) -
Closure( param: String, body: #(tree.Expression(m), m), env: List(#(String, Value(m, context))), ) -
Values
pub fn option(
option: option.Option(a),
cast: fn(a) -> Value(m, context),
) -> Value(m, context)