# `PtcRunner.Lisp.Analyze.Definitions`
[🔗](https://github.com/andreasronge/ptc_runner/blob/main/lib/ptc_runner/lisp/analyze/definitions.ex#L1)

Definition analysis for `def`, `defonce`, and `defn` forms.

Transforms definition forms into CoreAST using callback functions for
analyzing values, wrapping bodies, and analyzing function parameters.

# `analyze_def`

Analyzes a `def` form.

Takes `args` and `analyze_fn(ast) -> {:ok, core} | {:error, reason}`.

# `analyze_defn`

Analyzes a `defn` form (desugars to def + fn).

Takes `args`, `analyze_fn_params_fn(ast)`, and `wrap_body_fn(asts, tail?)`.

# `analyze_defonce`

Analyzes a `defonce` form.

Takes `args` and `analyze_fn(ast) -> {:ok, core} | {:error, reason}`.

---

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