# `Emerge.Engine.Reconcile`
[🔗](https://github.com/emerge-elixir/emerge/blob/v0.2.1/lib/emerge/engine/reconcile.ex#L1)

Reconcile Emerge.Engine.Element trees into stable ids and patch operations.

# `result`

```elixir
@type result() ::
  {Emerge.Engine.VNode.t(), [Emerge.Engine.Patch.patch()],
   Emerge.Engine.Element.t()}
```

# `assign_ids`

```elixir
@spec assign_ids(Emerge.Engine.Element.t()) ::
  {Emerge.Engine.VNode.t(), Emerge.Engine.Element.t()}
```

Assign ids to a tree without a previous version.

# `reconcile`

```elixir
@spec reconcile(Emerge.Engine.VNode.t() | nil, Emerge.Engine.Element.t()) :: result()
```

Reconcile a new tree against the previous vdom.

---

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