Add a multi-file modules and imports example
- Dominant language
- Rust
- Stars
- 53
- Forks
- 16
- Avg merge
- 4h 22m
- Merged PRs (30d)
- 46
Description
## Why
Wave documents local modules, aliases, selective imports, public declarations, and re-exports, but the maintained examples do not provide a small runnable multi-file program showing how those pieces fit together.
A contributor currently has to infer the intended module layout from compiler tests or documentation snippets.
## Scope
Add a self-contained multi-file example under `examples/` using only local modules.
The example should include:
- a `main.wave` entry point;
- at least one local helper module imported with `./...`;
- a namespaced import using an alias;
- a selective import of public symbols;
- a small facade module using `pub import` to re-export a symbol.
Keep the program focused on module behavior. Do not introduce a Vex package dependency or require network access.
## Completion criteria
- [ ] `wavec run` executes the entry-point program successfully.
- [ ] Every `.wave` source in the example also passes `wavec check` when discovered independently by the corpus checker.
- [ ] Private declarations remain inaccessible across module boundaries while the public declarations used by the example resolve correctly.
- [ ] The example is documented in the examples index or its local README.
- [ ] The program stays small enough to serve as a module/import reference rather than an application demo.
Contributor guide
Research direction
Start by inspecting the existing examples/ layout and the examples index or local README to follow the repository's runnable-example conventions. Add a small multi-file program with main.wave and the listed import forms, then run wavec run on the entry point and wavec check on each discovered .wave file; done means the example runs, checks independently, demonstrates public/private boundaries, and is documented.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation, testing
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100