プログラミング言語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