libxml2は更に酷かったという話

先述の循環参照への対応は実装しました。これでもうopaque typeが変な使われ方をしていても大丈夫!ええ、めんどくさかったですが。
でも、libxml2には更にその先があったのです……。

xmlregexp.h

/* 宣言A */
#include <tree.h>
/* 宣言Bを使う */

tree.h

/* 宣言B */
#include <xmlregexp.h>
/* 宣言Aを使う */

……。(あ、インクルードガードは省略してるだけでちゃんと書かれてます)
さあ、窓から物を投げる例のAAを探してこないと……。

これやられると本当にもうどうしようもないので、やらないでくださいね!