Module fungi_lang::ast
source · Expand description
Syntax: abstract (via Rust datatypes) and concrete (via Rust macros).
Program terms:
- Declarations (
d
): concrete, abstract. - Expressions (
e
): concrete, abstract. - Values (
v
): concrete, abstract.
Types and effects:
- Value types (
A,B
): concrete, abstract. - Computation types (
C,D
): concrete, abstract. - Effect types (
E
): concrete, abstract. - Effects (
ε
): concrete, abstract. - Propositions (
P
): concrete, abstract. - Kinds (
K
): concrete, abstract.
Index terms, name terms, sorts:
Structs
Host-language evaluation function (extend Rust-based Fungi interpreter).
Each module consists of a declaration list body
Declaration that uses (imports) all decls from another module
Enums
Computation effects
Computation types
Declaration lists of pure terms; the body of each module.
Effects
Expressions (aka, computation terms)
Index terms
Kinds (classify types)
Name Literals
Name Terms
Expressions (aka, computation terms)
Primitive (value) types
Propositions about name and index terms
Sorts (classify name and index terms)
Value types
Value terms