anchor.diff:                  [#'queue.declare'{queue = QBin, durable = true}]
           end,
       ErrFun = fun(Code, Text) -> {error, Code, Text} end,
  -    disposable_connection_calls(X, lists:flatten(do_n(F, SPN)), ErrFun).
  +    disposable_connection_calls(X, calls(F, SPN), ErrFun).
   
   bind_queues(#exchange{name = XName} = X) ->
       RKey = routing_key(X),
  
positive.code:                                  routing_key = OldRKey}]
          end,
      ErrFun = fun(Code, Text) -> {error, Code, Text} end,
      disposable_connection_calls(X, lists:flatten(do_n(F, OldSPN)), ErrFun).
  
  add_queues(#exchange{name = XName} = X) ->
      SPN = shards_per_node(X),
  
negative.code:                               routing_key = RKey}
          end,
      ErrFun = fun(Code, Text) -> {error, Code, Text} end,
      disposable_connection_calls(X, calls(F, SPN), ErrFun).
  
  %%----------------------------------------------------------------------------
  
  calls(F, SPN) ->
      lists:flatten([F(N) || N <- lists:seq(0, SPN-1)]).
  