0

データ型宣言の withtype 句で多くの型を定義するアプリケーションを作成しています。次のコード スニペットはそれを示しています。

datatype ta = A
withtype tb = int
     and tc = tb

smlnjは成功しますが、 mltonはこのコードのコンパイルに失敗します。

$ mlton -stop o test.sml
Error: test.sml 3.15.
  Undefined type tb.
compilation aborted: parseAndElaborate reported errors

mlton-20100608 と smlnj-110.71 を使用しています。

これはmltonのバグですか?

この種の宣言なしで続行する方法がわかりません。相互に再帰的なデータ型と型のセットです。

このアイデアは、Andrew Appel が彼の著書Modern Compiler Implementation in MLで Tiger 言語用に提案した抽象構文ツリー型から来ています。ファイル内の 98 ページabsyn.sml

4

1 に答える 1