# `PtcRunner.Lisp.BuiltinNames`
[🔗](https://github.com/andreasronge/ptc_runner/blob/main/lib/ptc_runner/lisp/builtin_names.ex#L1)

Leaf source of env-dispatched builtin names, loaded from
`priv/functions.exs` at compile time.

Exists so `PtcRunner.Lisp.SourceAtoms` can derive the builtin-name
half of its bounded vocabulary without calling
`PtcRunner.Lisp.Env.initial/0` — which would pull `SourceAtoms` into
the Lisp runtime cycle (issue #1051). This module aliases and calls
**no** other `PtcRunner.Lisp.*` runtime module, so it stays a leaf.

The names returned here equal `Env.initial() |> Map.keys()` exactly;
a drift-guard test asserts the two stay in sync.

# `env_names`

```elixir
@spec env_names() :: [atom()]
```

Returns the env-dispatched builtin names as atoms.

Equal to `PtcRunner.Lisp.Env.initial/0` keys, derived from the
compile-time registry instead of building the runtime environment.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
