Two gaps in what was claimed. The first is prose: "the typedef follows the defstruct" answers field order and field types but says nothing about padding, which reads like the remaining hazard. It is not one. Every field type the generator admits has the same layout under LLVM as under C, and emit.ml writes no datalayout, so clang applies the target's own rules to both halves; everything where they could diverge — an array, a slice, an Option, a map, a union — is already refused at the field. The second is real. The flattened declaration's name is invented by appending -c, so a hand-written foo-c beside (declare-c foo ...) came out as the checker complaining that a name not in the file was declared twice. Refused now where it happens, naming both and saying to rename one.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%