anchor.diff:                           impressions=Impressions0,
                            triggers=Triggers0}=State) ->
       %% Get current value of the list of advertisements.
  -    {ok, Ads} = lasp:query(?ADS_WITH_CONTRACTS),
  +    {ok, Ads0} = lasp:query(?ADS_WITH_CONTRACTS),
   
       %% Make sure we have ads...
  -    {Impressions1, Triggers1} = case sets:size(Ads) of
  +    {Impressions1, Triggers1} = case sets:size(Ads0) of
           0 ->
               %% Do nothing.
               {Impressions0, Triggers0};
  
positive.code:             Random = lasp_support:puniform(Size),
  
              {#ad{counter=Counter} = Ad, _Contract} =
                  lists:nth(Random, sets:to_list(Ads)),
  
              %% Spawn a process to disable the advertisement if it goes
              %% above the maximum number of impressions.
  
negative.code:             {Impressions0 + 1, Triggers}
      end,
  
      {ok, Ads} = lasp:query(?ADS_WITH_CONTRACTS),
      {ok, AdsValue} = lasp:read(?ADS_WITH_CONTRACTS),
  
      %% - If there no ads (`sets:size(Ads) == 0') 
      %%   it might mean the experiment hasn't started or it has started
      %%   and all ads are disabled.
      %%   If `not lasp_type:is_bottom(AdsValue)' then the experiment
      %%   has started. With both, it means the experiement has ended
      %% - Else, keep doing impressions
      case sets:size(Ads) == 0 andalso not lasp_type:is_bottom(AdsValue) of
          true ->
              lager:info("All ads are disabled. Node: ~p", [node()]),
  
  