anchor.diff:  %% API
   -export([prepare_test_environment/3, prepare_test_environment/2,
       clean_environment/1, clean_environment/2, load_modules/2,
  -    maybe_start_cover/0, maybe_stop_cover/0, maybe_gather_cover/1]).
  +    maybe_start_cover/0, maybe_stop_cover/0, finalize/1]).
   
   -define(NODE_CALL_TIMEOUT, timer:seconds(60)).
   -define(COOKIE_KEY, "vm.args/setcookie").
  
positive.code:     end.
  
  
  -spec maybe_gather_cover(Config :: list() | test_config:config()) -> ok.
  maybe_gather_cover(Config) ->
      maybe_gather_cover(Config, ?ALL_POSSIBLE_APPS).
  
  
  -spec maybe_gather_cover(Config :: list() | test_config:config(),
      Apps :: [{AppName :: atom(), ConfigName :: atom()}]) -> ok.
  maybe_gather_cover(Config, Apps) ->
      maybe_gather_cover(Config, Apps, cover:modules()).
  
  
  -spec maybe_gather_cover(Config :: list() | test_config:config(),
      Apps :: [{AppName :: atom(), ConfigName :: atom()}], [module()]) -> ok.
  maybe_gather_cover(_Config, _Apps, []) ->
      ok;
  maybe_gather_cover(Config, Apps, _) ->
      erlang:register(?CLEANING_PROC_NAME, self()),
  
      NodesWithCover = lists:flatmap(fun({AppName, ConfigName}) ->
          Nodes = test_config:get_custom(Config, ConfigName, []),
          lists:filter(fun(Node) ->
              case rpc:call(Node, application, get_env, [AppName, covered_dirs]) of
  
negative.code:     Apps :: [{AppName :: atom(), ConfigName :: atom()}]) -> ok.
  clean_environment(Config, Apps) ->
      StopStatus = try
          finalize(Config, Apps)
      catch
          E1:E2:Stacktrace ->
              ct:pal("Environment cleanup failed - ~p:~p~n" ++
  