Alasca: Visibility and Exports

Published on 2018-08-31.
  • open modules: namespace to place files, at the top of source files
    • nested or pure name-spacing (relevant for visibility)? e. g. is private content of package visible in package

... // more code here
  • visibility:
    • @public: visible to all (the default)
    • @private: only visible within the same scope
    • @internal: only visible within a module, hidden on export
    • @protected: only visible to subtypes
  • all modules are values and can be used to “export” a subset of another module:
// file 1:
	class X
    module Y
		module Z

// file 2:
module Foo
	let bar = // exports // works // disallowed, because Z is @internal