# `Reach.Evidence.MapContract`
[🔗](https://github.com/elixir-vibe/reach/blob/v2.8.4/lib/reach/evidence/map_contract.ex#L1)

Collects evidence for maps that behave like implicit contracts.

# `collect_fallbacks`

# `collect_key_accesses`

# `collect_key_normalizations`

# `collect_project`

# `collect_representation_churn`

# `collect_representation_churn`

# `nested_parameter_access?`

# `nested_parameter_bindings`

```elixir
@spec nested_parameter_bindings(map()) ::
  MapSet.t(
    {{module() | nil, atom(), non_neg_integer()}, non_neg_integer(), atom()}
  )
```

Returns names bound inside nested function-parameter patterns.

# `parameter_origin_index`

```elixir
@spec parameter_origin_index(map()) :: %{
  required({{module() | nil, atom(), non_neg_integer()}, term()}) =&gt;
    non_neg_integer()
}
```

Indexes direct function-parameter bindings by their zero-based parameter position.

---

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