プログラミング言語SML#解説 4.1.0版
24 モジュール言語の宣言とインタフェイス

24.4 モジュール言語のインタフェイス

モジュール言語のインタフェイスは,第16.2節で定義した通り, ストラクチャのプロバイド(⟨provideStr⟩)と ファンクタのプロバイド(⟨provideFun⟩) の2つである. それらの構文は以下の通りである.

⟨provideStr⟩ ::=  structure ⟨strid⟩ = struct ⟨provideStrdecl⟩ end
⟨provideStrdecl⟩ ::= ⟨provideVal⟩
 | ⟨provideType⟩
 | ⟨provideDatatype⟩
 | ⟨provideException⟩
 | ⟨provideStr⟩
⟨provideFun⟩ ::=  functor ⟨provideFunBind⟩
⟨provideFunBind⟩ ::= ⟨funid⟩ (⟨strdesc⟩) = ⟨provideStrExp⟩

以下はストラクチャ宣言を含むソースファイルとインターフェイスの例である.

Bool.sml file: structure Bool =
struct
  datatype bool = false | true
  fun not true = false
    | not false = true
  fun toString true = "true"
    | toString false = "false"
end
Bool.smi file: structure Bool =
struct
  datatype bool = false | true
  val not : bool -> bool
  val toString : bool -> string
end