# `Dict`
[🔗](https://github.com/elixir-lang/elixir/blob/v1.20.0-rc.3/lib/elixir/lib/dict.ex#L5)

> This module is deprecated. Use Map or Keyword modules instead.

Generic API for dictionaries.

If you need a general dictionary, use the `Map` module.
If you need to manipulate keyword lists, use `Keyword`.

To convert maps into keywords and vice-versa, use the
`new` function in the respective modules.

# `key`

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

# `t`

```elixir
@type t() :: list() | map()
```

# `value`

```elixir
@type value() :: any()
```

# `delete`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec delete(t(), key()) :: t()
```

# `drop`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec drop(t(), [key()]) :: t()
```

# `empty`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec empty(t()) :: t()
```

# `equal?`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec equal?(t(), t()) :: boolean()
```

# `fetch`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec fetch(t(), key()) :: value()
```

# `fetch!`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec fetch!(t(), key()) :: value()
```

# `get`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec get(t(), key(), value()) :: value()
```

# `get_and_update`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec get_and_update(t(), key(), (value() -&gt; {value(), value()})) :: {value(), t()}
```

# `get_lazy`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec get_lazy(t(), key(), (-&gt; value())) :: value()
```

# `has_key?`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec has_key?(t(), key()) :: boolean()
```

# `keys`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec keys(t()) :: [key()]
```

# `merge`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec merge(t(), t()) :: t()
```

# `merge`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec merge(t(), t(), (key(), value(), value() -&gt; value())) :: t()
```

# `pop`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec pop(t(), key(), value()) :: {value(), t()}
```

# `pop_lazy`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec pop_lazy(t(), key(), (-&gt; value())) :: {value(), t()}
```

# `put`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec put(t(), key(), value()) :: t()
```

# `put_new`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec put_new(t(), key(), value()) :: t()
```

# `put_new_lazy`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec put_new_lazy(t(), key(), (-&gt; value())) :: t()
```

# `size`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec size(t()) :: non_neg_integer()
```

# `split`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec split(t(), [key()]) :: {t(), t()}
```

# `take`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec take(t(), [key()]) :: t()
```

# `to_list`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec to_list(t()) :: list()
```

# `update`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec update(t(), key(), value(), (value() -&gt; value())) :: t()
```

# `update!`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec update!(t(), key(), (value() -&gt; value())) :: t()
```

# `values`

> This function is deprecated. Use the Map module for working with maps or the Keyword module for working with keyword lists.

```elixir
@spec values(t()) :: [value()]
```

---

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