toplevelモジュール
コンパイル単位でのトップレベルの変数を保持するモジュールオブジェクトです。
静的に発見できない変数参照は、toplevelモジュールから検索されます。
println(foo); // toplevel::foo と同じ意味
そのため、toplevelにincludeすれば、暗黙的な変数参照の対象となります。
test_module : module{ foo : fun(obj){ println(obj ); } } toplevel.include(test_module); foo(1000); // toplevel::foo(1000) と同じになる
toplevelには最初からincludeされているモジュールが一つあり、それをbuiltinモジュールといいます。
これらは実はbuiltinモジュールのメンバとして存在しています。そのため暗黙的に参照できるのです。