Module fungi_lang::ast [] [src]

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

Program terms:
- 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.
- Kinds (K): concrete, abstract.

Index terms, name terms, sorts:
- Name literals (n): concrete, abstract.
- Name terms (N,M): concrete, abstract.
- Index terms (i,j,X,Y,Z): concrete, abstract.
- Propositions (P): concrete, abstract.
- Sorts (g): concrete, abstract.

Enums

CEffect

Computation effects

CType

Computation types

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

TypeCons

Type constructors

Val

Value terms

Type Definitions

CEffectRec
EffectRec
ExpRec
IdxTmRec
KindRec
NameRec
NameTmRec
PropRec
SortRec
TypeRec
ValRec
Var