Algebraic data types for C99
翻译 - C99的代数数据类型
A research programming language on top of C macros
翻译 - with具有纯C模式匹配和类型自省功能的ADT