 
   In the examples below, `dict_impl` means a specific
   `Dict` implementation, for example `HashDict` or `Map`.
+
+  ## Warning
+
+  Do not use this module if you expect a certain `Dict`
+  implementation. For example, if you are working with
+  maps and you don't need polymorphism, it is preferrable
+  to use the `Map` module instead of the `Dict` one.
 
   ## Protocols
 

  Merges the dict `dict2` into dict `dict1`.

  If one of the `dict2` entries is found in `dict1`, the
  conflicting entries in `dict2` have higher precedence unless a
  function is given to resolve conflicts.

  Notice this function is polymorphic as it merges dicts of any
  type. Each dict implementation also provides a `merge` function,

defmodule Dict do
  @moduledoc ~S"""
  This module specifies the Dict API expected to be
  implemented by different dictionaries.

  It also provides functions that redirect to the underlying
  Dict, allowing a developer to work with different Dict
  implementations using one API.

  To create a new dict, use the `new` functions defined
  by each dict type:
