Ch.8 SML#分割コンパイルシステム

§ 8.7. リプリケーション宣言

インタフェイスファイルは,資源の実体の表現です. 従って,例えば

structure Foo =
struct
     structure A = Bar
     structure B = Bar
...
end

のような構造のモジュールに対して,シグネチャと違い,

structure Foo =
struct
     structure A : SigBar
     structure B : SigBar
...
end

のような書き方はできません. これまでのメカニズムのみでは,Barの内容をくり返し書く必要があり ます. この冗長さを抑止するために,インタフェイスファイルは,以下の資源 のリプリケーション(複製)宣言を許しています.

  • structure id = path

  • exception id = path

  • datatype id = datatype path

  • val id = path

これによって,すでに定義済みの資源に対しては,インタフェイスファ イルであっても,通常のソースファイルと同様にその複製の宣言を書くことがで きます. 例えば,Barストラクチャを提供するインタフェイスファイルがbar.smiであるとすると,以下のように書くことができます.

_require "bar.smi"
structure Foo =
struct
     structure A = Bar
     structure B = Bar
...
end