 
       {:update, :sample, {:advanced, {Enum, :into, [%{}]}}}
 
-  The agent state will be added as first argument of the arguments list.
+  The agent's state will be added to the given list as the first argument.
   """
 
   @typedoc "Return values of `start*` functions"

        @doc "Marks a task as executed"
        def put_task(task, project) do
          item = {task, project}
          Agent.update(__MODULE__, &Set.put(item, &1))
        end
      end


        Agent.get(agent, &(&1)) |> do_something_expensive()
      end

  The first one blocks the agent while the second one copies
  all the state to the client and executes the operation in the client.
  The trade-off here is exactly if the data is small enough to be
  sent to the client cheaply or large enough to require processing on
  the server (or at least some initial processing).

  ## Name registration

  An Agent is bound to the same name registration rules as GenServers.
  Read more about it in the `GenServer` docs.

  ## A word on distributed agents

  It is important to consider the limitations of distributed agents. Agents
  work by sending anonymous functions in between the caller and the agent.
  In a distributed setup with multiple nodes, agents only work if the caller
  (client) and the agent have the same version of a given module.

  This setup may exhibit issues when doing "rolling upgrades". By rolling
  upgrades we mean the following situation: you wish to deploy a new version of
  your software by *shutting down* some of your nodes and replacing them by
  nodes running a new version of the software. In this setup, part of your
  environment will have one version of a given module and the other part
  another version (the newer one) of the same module; this may cause agents to
  crash. That said, if you plan to run in distributed environments, agents
  should likely be avoided.

  Note, however, that agents work fine if you want to perform hot code
  swapping, as it keeps both the old and new versions of a given module.
  We detail how to do hot code swapping with agents in the next section.

  ## Hot code swapping
