Module fungi_lang::ast [−][src]
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
HostEvalFn |
Host-language evaluation function (extend Rust-based Fungi interpreter). |
HostObj | |
Module |
Each module consists of a declaration list body |
UseAllModule |
Declaration that uses (imports) all decls from another module |
Enums
CEffect |
Computation effects |
CType |
Computation types |
Decls |
Declaration lists of pure terms; the body of each module. |
Effect |
Effects |
Exp |
Expressions (aka, computation terms) |
IdxTm |
Index terms |
Kind |
Kinds (classify types) |
Name |
Name Literals |
NameTm |
Name Terms |
PrimApp |
Expressions (aka, computation terms) |
PrimType |
Primitive (value) types |
Prop |
Propositions about name and index terms |
Sort |
Sorts (classify name and index terms) |
Type |
Value types |
Val |
Value terms |
Traits
HostObjOps |
Functions
ident_bool | |
ident_nat | |
ident_string | |
type_bool | |
type_nat | |
type_string |
Type Definitions
CEffectRec | |
DeclsRec | |
EffectRec | |
ExpRec | |
Ident | |
IdxTmRec | |
KindRec | |
NameRec | |
NameTmRec | |
PropRec | |
SortRec | |
TypeRec | |
ValRec | |
Var |