Module fungi_lang::ast [] [src]

Syntax: abstract (via Rust datatypes) and concrete (via Rust macros).

Program terms:

Types and effects:

Index terms, name terms, sorts:

Structs

HostEvalFn

Host-language evaluation function (extend Rust-based Fungi interpreter).

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)

Prop

Propositions about name and index terms

Sort

Sorts (classify name and index terms)

Type

Value types

Val

Value terms

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