Structs
Enums
Represents a rather surface-level const-expression. Polynomial-based canonicalization is not yet here.
A Melodeon type.
Type
is generic over two parameters, TVar
and CVar
, which represent the type for
type-variables as well as the type for constant-generic variables.
These are generic types in order to statically guarantee the status of free variables. For example, one may start
with Type<RawTVar, RawCVar>
, turn that into Type<MangledTVar, MangledCVar>
, and resolve that into Type
.Traits
Functions
Monomorphizes a set of function definitions and a “preliminary” body into a fully degenericized version.
Typechecks a single expression, returning a single typed ast node.
Typechecks a whole program, resolving free variables fully.