# The five labels

> Each line of an answer carries one of five labels, strongest first. The label says how far the line is proven.

| | Label | What it means | For example |
| --- | --- | --- | --- |
| ✓ | certain | We can prove it is exactly one function. | an imported `save_user()` call |
| ◇ | exactly_these | A known set, and every member really can run here. | all registered listeners of a fixed event |
| ◇ | within_these | One of a known list; some listed may never happen here. | a call on a base type, with all overrides in the repo listed |
| ⚠ | maybe_more | There are candidates, but the door is open. | the type is unknown, or a library outside the repo |
| ⚠ | cannot_see | Nothing to go on. | `handlers[key]()`, a computed call, a file we could not read |

## Reasons

Every line below certain says why, in brackets: for example `closed: repo only`, `open: type unknown`, `open: dynamic call`, `open: file not analysed`.

## One of, all of

**One of** means exactly one listed function runs. **All of** means every one runs, such as an event sent to all its listeners.

## Assumptions and ruled-out lines

An answer that relies on an assumption says so, for example `assumes [a]: all subclasses are in this repo (project setting)`. A line starting with – was ruled out, with its proof.

> A label is never rounded up, and nothing is ranked by chance.
