I do not believe I have enough language inside to actually propose a solution. Still I would like to show what I think is the most simplest and flexible way to create modules.
Introduce the ‘module’ keyword to define a module. module <MyModule> To create an empty lexical module named “MyModule”: module MyModule To create content for the module define types/functions/variables/protocols etc using the module name with a dot notation: var MyModule.myVar: Int Defines a variable at the module level that can be referred to by “myVar” inside the module, and by “MyModule.myVar” outside the module. Same for functions, classes, protocols etc. To create a submodule: module MyModule.SubModule To create a sub-sub module: module SubModule.SubSubModule If no module definition is present, the default module name is the name of the project. Defining a module with the same name as the project is allowed, but does not create a new module, it simply refers to the default module. Visibility (access) is created by: import <moduleName> Access level (capability) must be defined by other means (preferably the mechanism proposed by Matthew) Regards, Rien Site: http://balancingrock.nl Blog: http://swiftrien.blogspot.com Github: http://github.com/Balancingrock Project: http://swiftfire.nl
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
