anchor.diff:  %%      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(), function(), [any()])
  +-spec multicall_ann([node()], module(), atom(), [any()])
                      -> {Results :: [{node(), any()}], Down :: [node()]}.
   multicall_ann(Nodes, Mod, Fun, Args) ->
       multicall_ann(Nodes, Mod, Fun, Args, infinity).
  
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.
  -spec multi_rpc([node()], module(), function(), [any()]) -> [any()].
  multi_rpc(Nodes, Mod, Fun, Args) ->
      multi_rpc(Nodes, Mod, Fun, Args, infinity).
  
  %% @doc Perform an RPC call to a list of nodes in parallel, returning the
  %%      results in the same order as the input list.
  -spec multi_rpc([node()], module(), function(), [any()], timeout()) -> [any()].
  multi_rpc(Nodes, Mod, Fun, Args, Timeout) ->
      pmap(fun(Node) ->
                   rpc:call(Node, Mod, Fun, Args, Timeout)
  
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),
  