///|
using @lib {
  equals,
  get_struct_field,
  has_default,
  min_addr_valtype,
  min_addr,
  trace_delta_us_to_ms,
  trace_elapsed_ms,
  trace_elapsed_us_since,
  trace_now_ms,
  trace_now_us,
  type AbsHeapType,
  type AtomicOrder,
  type AtomicCmpxchgOp,
  type AtomicRmwOp,
  type BlockType,
  type CastOp,
  type Catch,
  type CodeSec,
  type CompType,
  type Data,
  type DataCntSec,
  type DataIdx,
  type DataMode,
  type DataSec,
  type DefType,
  type Elem,
  type ElemIdx,
  type ElemKind,
  type ElemMode,
  type ElemSec,
  type Export,
  type ExportSec,
  type Expr,
  type ExternIdx,
  type ExternType,
  type FieldType,
  type Func,
  type FuncAnnotation,
  type FuncAnnotationAssoc,
  type FuncAnnotationSec,
  type FuncIdx,
  type FuncSec,
  type FuncType,
  type Global,
  type GlobalIdx,
  type GlobalSec,
  type GlobalType,
  type HeapType,
  type Import,
  type ImportSec,
  type Instruction,
  type LabelIdx,
  type LaneIdx,
  type Limits,
  type LocalIdx,
  type Locals,
  type MemArg,
  type MemIdx,
  type MemSec,
  type MemType,
  type Module,
  type Mut,
  type Name,
  type NameAssoc,
  type NameMap,
  type IndirectNameAssoc,
  type IndirectNameMap,
  type NameSec,
  type NumType,
  type PackType,
  type RecType,
  type RefType,
  type ResumeHandler,
  type ResultType,
  type StartSec,
  type StorageType,
  type SubType,
  type Table,
  type TableIdx,
  type TableSec,
  type TableType,
  type TagIdx,
  type TagSec,
  type TagType,
  type TypeMetadata,
  type TypeIdx,
  type TypeSec,
  type U32,
  type ValType,
}

///|
using @representation {
  type AccessFacts,
  type AccessSiteFacts,
  type AliasSource,
  type AllocationFacts,
  type AllocationFieldFacts,
  type AllocationKind,
  type AllocationSiteFacts,
  type ArrayElementFacts,
  type BranchFacts,
  type BranchProfile,
  type CallProfile,
  type CallSiteFacts,
  type ClosedAliasSet,
  type ClosedFunctionSet,
  type ClosedGlobalSet,
  type ClosedHeapTypeSet,
  type ClosedMemorySet,
  type ClosedTableSet,
  type ClosedTypeViewSet,
  type ClosedValueSet,
  type CodeSite,
  type CompilerFactCustomSection,
  type EffectFacts,
  type EffectMask,
  type EscapeSinkMask,
  type ExpressionFact,
  type FactHeapType,
  type FactOperand,
  type FactValue,
  type FieldFacts,
  type FieldUsageFacts,
  type FloatClassMask,
  type FloatFacts,
  type FloatWidth,
  type FunctionBodyFacts,
  type FunctionBoundaryFacts,
  type FunctionFacts,
  type FunctionProfile,
  type FunctionResultRef,
  type GlobalFacts,
  type HeapDomain,
  type HintTarget,
  type IndexedValueFacts,
  type InlinePolicy,
  type IntConstant,
  type IntegerFacts,
  type IntWidth,
  type KnownBits,
  type KnownV128Bits,
  type LoopFacts,
  type LoopProfile,
  type MutationFacts,
  type MutationPhase,
  type NullabilityFacts,
  type NumericOperationFacts,
  type NumericOperationSiteFacts,
  type OptimizationFactsSec,
  type OptimizationGoal,
  type OptimizationHint,
  type ParameterFacts,
  type ParameterRef,
  type ParameterUseMask,
  type ProducerInfo,
  type ReferenceFacts,
  type RelationKind,
  type ResultFacts,
  type ResultIdentityFacts,
  type ScopedRelationFacts,
  type SignatureFacts,
  type SignedRange,
  type SourceProvenance,
  type TableEntryFacts,
  type TableFacts,
  type TemperatureHint,
  type TypeFacts,
  type TypePopulation,
  type TypeView,
  type UnsignedRange,
  type V128Bits,
  type ValueFacts,
  type ValueRef,
  type ValueSite,
  type VectorFacts,
  type VectorLaneShape,
  type WorldFacts,
  type WorldMode,
  type WriteFacts,
}

///|
using @splitmix {type RandomState}

///|
using @validate_proof {
  bounded_index,
  defined_func_absolute_index,
  defined_body_func_index,
  defined_func_body_index,
  group_member_relative_index,
  group_relative_absolute_index,
  label_stack_storage_index,
  latest_stack_index,
  suffix_start_index,
}