wavefnd / wavefnd/Wave

Add a multi-file modules and imports example

Open
#657 0 comments 0 reactions 0 assignees View on GitHub
documentation good first issue needs testing
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.