anchor.diff:  %% @doc Perform an RPC call to a list of nodes in parallel, returning the
   %%      results in the same order as the input list. Each result is tagged
   %%      with the corresponding node name.
  --spec multi_rpc_ann([node()], module(), function(), [any()], timeout())
  +-spec multi_rpc_ann([node()], module(), atom(), [any()], timeout())
                      -> [{node(), any()}].
   multi_rpc_ann(Nodes, Mod, Fun, Args, Timeout) ->
       Results = multi_rpc(Nodes, Mod, Fun, Args, Timeout),
  
positive.code: %% @doc Perform an RPC call to a list of nodes in parallel, returning the
  %%      results in the same order as the input list. Each result is tagged
  %%      with the corresponding node name.
  -spec multi_rpc_ann([node()], module(), function(), [any()])
                     -> [{node(), any()}].
  multi_rpc_ann(Nodes, Mod, Fun, Args) ->
      multi_rpc_ann(Nodes, Mod, Fun, Args, infinity).
  
negative.code: %%      of nodes that are down/unreachable. The results will be returned in
  %%      the same order as the input list, and each result is tagged with the
  %%      corresponding node name.
  -spec multicall_ann([node()], module(), atom(), [any()], timeout())
                     -> {Results :: [{node(), any()}], Down :: [node()]}.
  multicall_ann(Nodes, Mod, Fun, Args, Timeout) ->
      L = multi_rpc_ann(Nodes, Mod, Fun, Args, Timeout),
  