   More detailed information, such as user details that need to be fetched
   from the database, can be achieved by overriding the `c:fetch/2` function.
 
-  The `c:fetch/2` callback is triggered when using `c:list/2` and on
+  The `c:fetch/2` callback is triggered when using `c:list/1` and on
   every update, and it serves as a mechanism to fetch presence information
   a single time, before broadcasting the information to all channel subscribers.
   This prevents N query problems and gives you a single place to group


  ## Examples

  Uses the same data format as `c:list/2`, but only
  returns metadata for the presences under a topic and key pair. For example,
  a user with key `"user1"`, connected to the same chat room `"room:1"` from two
  devices, could return:

      iex> MyPresence.get_by_key("room:1", "user1")
      [%{name: "User 1", metas: [%{device: "Desktop"}, %{device: "Mobile"}]}]

  Like `c:list/1`, the presence metadata is passed to the `fetch`
  callback of your presence module to fetch any additional information.
  """
  @callback get_by_key(Phoenix.Socket.t | topic, key :: String.t) :: presences
