完成: Pythonで型推論を実装してみる

たぶん解決 - ラシウラのつづき。
Lambdaでの無限循環型の排除と、変数型の同値性の導入できちんと実装した。

同値性のコードが予想以上に大きかった。同値管理の実装は馬鹿っぽいけど、うまくやる方法があるのだろうか。

ついでにできた機能として、宣言ではできないけどパラメトリックタイプも対応したし、Addも多相型になった。人間が読める形式で変数型入りの型を表示する機能もいれた。まあパラメトリックの宣言は型変数生成期を作ればいいだけだが。

Pythonの」じゃないところがアレだけど。どういう仕組みで作ればいいかはわかると思う。

個人的には、実際に使用する大半の型が独自定義の独立したクラスになるようだと、プログラム全体での型チェックはなくてもいいと思っている。けど、場所によってチェックできれば、役立つ部分も多いとも思っている。32bitとか物理的な型を処理する場合や、.NET CILやJVMのように型がないとメソッドが解決できないものとの間を取り持つ場合とか、多段の構造を見るような場合とか、の場合は推論があると多少は役立ちそうかな。