and parameter = {p_type : type_;p_name : name option;
}and struct_kind = | Struct| Union
and storage = | Extern| Static| DefaultStorage
and field_def = {fld_name : name option;fld_type : type_;
}type define_body = | CppExpr of expr| CppStmt of stmt
val str_of_name : ('a * 'b) -> 'aval looks_like_macro : (string * 'a) -> boolval unwrap : ('a * 'b) -> 'a