Module reflection

Source
Description

Compile-time reflection types.

:type-info(T) pushes a TypeInfo cell describing the structure of T. These types live during type checking and bytecode generation and are produced by the compiler for each reflected type; erasure and compile-time folding are a separate concern.

Data Types

Records

AliasTypeInfo

Describes a type alias: its declared name, type parameter names, and

EnumTypeInfo

Describes an enum type: its declared name and the list of variant

EnumVariantTypeInfo

Describes a single enum variant: its declared name and integer value.

ExistentialTypeInfo

Describes an existential type by the list of trait names it witnesses.

FieldInfo

Describes a single field of a record: its declared name and the

FloatTypeInfo

Describes a Float type by its bit width (16, 32, or 64).

IntTypeInfo

Describes an Int type.

NewtypeTypeInfo

Describes a newtype: its declared name, type parameter names, and the

QuotationTypeInfo

Describes a quotation type by its input row, output row, and declared

RecordTypeInfo

Describes a record type: its declared name, type parameter names, and

UnionTypeInfo

Describes a union type: its declared name, type parameter names, and

VariantInfo

Describes a single variant of a union: its declared name and the list

VecTypeInfo

Describes a Vec type: the element type and, when statically known, its

Unions

TypeInfo

Top-level reflected type descriptor.