OCamlの型検査の働きもしくは多相性とガベージコレクションが共通して持つ物

結局、次に作成するコンパイラはCamlP4は使わずにocamlyaccとocamllexでMinCamlに近い形で作る事にしました。
そして、テストファーストで四則演算、それ以外の関係演算子や比較演算子、論理演算子等を加え、LLVMに出力し、参照を導入して、mutableな変数のように扱えるようにして、単純な型推論まで入れました。次は多相性を入れたい。
以下のサイトを参考に、LLVMのコードを出力するものを作成してみました。

http://okmij.org/ftp/ML/generalization.html

Scalaで書いた物が大分前に動いていたので、OCamlに移植すれば動いたわけです。

さてこのノウハウをベースに多相型の型推論を導入しようと型エラーは無い状態までプログラムを作成したのですが、うまく動きません。
大体は分かるのです。でも、しっかりと動作を理解してないので、どう修正したら良いのか、よくわかりません。ドキュメントは英語ならあるので、翻訳すれば良いはずです。

そこでしっかり把握するためにOCaml型推論の解説を動作を理解出来るように翻訳してみています。

https://github.com/hsk/generalization/wiki

多相型の型推論を自由に扱えれば、型パラメータ書かなくてもいいテンプレートみたいなものが作れるのではと期待している訳です。作れないなら作れないと断言出来るはずなので、精進あるのみです。