Ядро на C и инструментарий на C++23 встречаются в include/astrolune. Десять правил определяют, что может появиться в заголовке, который собирают оба языка, и до сих пор их соблюдали на ревью — то есть соблюдали, пока кто-нибудь не забывал.
Одна единица трансляции, включающая каждый публичный заголовок и утверждающая контракт раскладки, превращает каждое из этих правил в ошибку компиляции. Это была самая дешёвая победа над ошибками в дереве, и её написание вскрыло два реальных расхождения, мимо которых ревью прошло дважды.
/* al_bool — это не bool: настоящий bool сжимает 2 в 1 */
static_assert(!std::is_same<al_bool, bool>::value);
static_assert(AL_CAST(al_bool, 2) == 2);
Проверка — это четыре небольших файла, а не один, и обоснование есть в документе о границе: каждый файл падает по-своему, когда нарушено конкретное правило, а их слияние размыло бы то, какое правило поймало ошибку.