# `RustQ.Meta.Lower.Env`
[🔗](https://github.com/elixir-crab/rustq/blob/v1.0.0-rc.19/lib/rustq/meta/lower.ex#L42)

What lowering knows at a point in a body. `scope_return_type` is what the enclosing
function or closure returns, which `?` exits into; `return_type` is what the block being
lowered must produce. `captured` names the variables enclosing closures capture, which a
closure called once per item must not move.

# `t`

```elixir
@type t() :: %RustQ.Meta.Lower.Env{
  built_from: term(),
  callables: term(),
  captured: term(),
  lexical_vars: term(),
  macro_vars: term(),
  position: term(),
  return_type: term(),
  rust_macros: term(),
  rust_modules: term(),
  scope_return_type: term(),
  type_aliases: term(),
  vars: term()
}
```

---

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