         use Agent
 
         def start_link(_) do
-          Agent.start_link(fn -> MapSet.new end, name: __MODULE__)
+          Agent.start_link(fn -> MapSet.new() end, name: __MODULE__)
         end
 
         @doc "Checks if the task has already executed"
         def executed?(task, project) do
           item = {task, project}
+
           Agent.get(__MODULE__, fn set ->
             item in set
           end)


      # Compute in the agent/client
      def get_something(agent) do
        Agent.get(agent, &(&1)) |> do_something_expensive()
      end

  The first function blocks the agent. The second function copies all the state

        @doc "Resets the executed tasks and returns the previous list of tasks"
        def take_all() do
          Agent.get_and_update(__MODULE__, fn set ->
            {Enum.into(set, []), MapSet.new()}
          end)
        end
      end
