# `AshUi.Comprehension`
[🔗](https://github.com/hyperbob-labs/ash_ui/blob/main/lib/ash_ui/rendered.ex#L28)

A keyed collection in the render algebra — structurally identical to
`Phoenix.LiveView.Comprehension`. AshUi always emits keyed entries
(`has_key?: true`) and never emits streams: collections are keyed
comprehensions over resource state by model, permanently — `stream` and
LiveComponents are excluded from this algebra by design, not omission.

Entries are `{key, vars, render_fun}` where `render_fun.(changed_vars,
track_changes?)` returns the entry's dynamic list.

# `key`

```elixir
@type key() :: term()
```

# `keyed_render_fun`

```elixir
@type keyed_render_fun() :: (map(), boolean() -&gt; [AshUi.Rendered.dyn()])
```

# `t`

```elixir
@type t() :: %AshUi.Comprehension{
  entries: [{key(), map(), keyed_render_fun()}],
  fingerprint: integer(),
  has_key?: boolean(),
  static: [binary()],
  stream: nil
}
```

---

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