ReasonML は各ファイルをモジュールとして扱います。慣例では、ファイル名を大文字にします。
Foo.re
Bar.re
また、Foo call bar で関数を定義し、Bar call foo で別の関数を定義するとします。
したがって、次のようになります。
/* Inside Foo.re */
let bar = string => {}
/* Inside Bar.re */
let foo = string => {}
Main.re と呼ばれる別のモジュールから、上記を次のように参照できます。
let myResult = Foo.bar("happy");
let ourResult = Bar.foo("days);
また
open Foo, Bar;
let myResult = bar("happy");
let ourResult = foo("days");
したがって、 を求められたときopen MyProject.Foo
、存在しないモジュール MyProject 内のサブモジュール Foo を求めていました。もちろん、MyProject.re
モジュールを作成してそのファイルに追加した場合はFoo
、open MyProject.Foo
正常に動作します。
さらなる参考文献:
reasonML モジュールが基づいている基礎となるOcaml 。ReasonML に関する Axel Rauschmayer ブックのBasic modulesセクション