#mimium モジュールシステムの意味論と実装について考える ### 必要要件 分割コンパイルできる、かつ、意味論的にもある程度一貫性がある #### モジュール内での宣言一覧 ```rust //関数のvisibilityセッティングはRustとおなじ感じ pub fn (){ } pub const Foo = 100 type Bar = Constructor(()->float) //新しい型宣言 type alias Hoge = ()->float //エイリアス宣言 ``` #### モジュールの宣言 ```rust mod(macro) modname{ } ``` ``` Program = FunctionDefinition |GlobalDeclaration |ModuleDeclaration |use ModuleName ModuleDeclaration = Visibility(stage) { Program } ```