私の現在のプロジェクトでは、40 の異なる型 (判別共用体) を持つ AST を使用しており、この AST のいくつかの型には循環依存があります。型はそれほど大きくないので、それらを 1 つのファイルにまとめtype ... and ...
、相互に依存する型の構築を適用しました。
現在、AST の各要素の下でいくつかの計算を行う関数を追加しています。数行のコードを含む多くの関数があるため、ソース コードを読みやすくするために、これらの関数を別のファイルに分けました。
循環依存関係がない場合は問題ありません。依存関数が同じファイルにある場合にも機能します。この場合、let rec function1 ... and function2 ...
構築を使用できます。
しかし、私の場合はうまくいきません。
また、署名ファイルがこれに役立つと誤って考えていましたが、その動作は C++ とは異なります。
- 関数/型のアクセス モード (内部/パブリック) を定義するために使用されます。また、関数/型のコメント ヘッダーをここに追加することもできます。
私が考える唯一の解決策は、すべての関数を 1 つのファイルに移動し、let rec ... and ... and ... and ... and ...
構築を使用することです。
誰かが異なる考えを持っている可能性がありますか?