Modules
What is a module?
In Keen, every file is a module.
There is no need for an explicit module declaration.
Without an import, code in one file won't have access to code from a different file.
The standard import
Standard library imports
Most of the standard library is not in the keen/std and must be explicitly imported.
Imports from the standard library start with keen/.
Imports go in an indented block after the import keyword, each on their own line.
Selected imports
To import just a few declarations from a module, write those names after a colon.
Relative imports
Imports can use relative paths.
These look like the relative path to the imported file, just with .keen omitted.
Re-exports
One module can re-export declarations from another.
This may be useful for defining a main entry point for a library.
The export block has the same syntax as an import block.
It must come after any import block.
File imports
No cycles
Modules must be acyclic. If module A imports module B, B can't import A.
To work around this, you could use specs. (See Specs.)