Runtime policy фиксирует observable values, ordering, faults, rendering, numeric boundaries и host-effect limits, позволяя реализациям выбирать внутреннее представление.
Канонический контракт
int — signed 64-bit с checked overflow, делением к нулю, знаком remainder и fault неверных операций. float — IEEE-754 binary64. Строки сравнивают точные scalar sequences. Коллекции сохраняют заданный insertion/production order. Option, Result, nominal values, templates, Bytes, BigInt, Decimal, JSON, dates, hashes и formats следуют contracts inventory signatures.
Публичная поверхность
Вспомогательные функции среды выполнения не являются дополнительными публичными именами. Каждая цель может использовать собственные записи, задачи, библиотеки и внутренние структуры, пока видимое поведение программы остаётся тем же. Вывод поддерживаемых значений стабилен и сохраняет имя номинального конструктора там, где это требуется.
Наблюдаемое поведение
Fault прерывает evaluation и отличается от Option/Result. Fault concurrent arm прерывает выражение; timeout fallback обрабатывает только timeout. Named fault sources: direct Array index, integer zero division, dynamic zero step, checked overflow, negative dynamic exponent и runtime match miss. Safe alternatives вроде get возвращают Option. Callbacks и snapshots следуют фиксированному порядку.
Текущая поддержка
Интерпретатор, Rust и Python совместно тестируются на текущих семействах среды выполнения. Сжатие пока ограничено библиотечным путём Rust, а порядок выполнения параллельных задач намеренно не определён.
Ограничения и исключения
Нельзя выводить host wrapping, host hash order, locale formatting, implicit Unicode normalization, catchable faults, общую finalization после abort, scheduling order, ambient host authority, performance guarantees или unlisted helpers. Другое lowering допустимо только при равном observable result либо loud decline.
Пример
function safeRead(values: Array<int>, index: int) -> Option<int> {
return values.get(index)
}
let rounded = Math.round(2.5)
let item = safeRead([10, 20], 9)
print("{rounded}:{item}")