Haskellは相互再帰的なlet-bindingsをサポートしています。これは素晴らしいことです。Haskellは相互再帰モジュールをサポートしていません。これは時々ひどいものです。GHCにはその.hs-boot
メカニズムがあることは知っていますが、それはちょっとしたハックだと思います。
私の知る限り、相互再帰モジュールの透過的なサポートは比較的「単純」である必要があり、相互再帰let-bindingsとまったく同じように実行できます。個々のモジュールをコンパイル単位として使用する代わりに、強く接続されたすべてのコンポーネントを使用します。モジュール依存関係グラフのコンパイル単位としての。
ここで何かが足りませんか?Haskellがこのように相互再帰モジュールをサポートしない重要な理由はありますか?