anchor.diff:       = S) ->
       send(SId rem OS, Msg, S);
   
  -%% ... or not: rotate when sending ordered ...
  -send(Msg, #transport{unordered = false,
  +%% ... or not: rotate when sending on multiple streams ...
  +send(Msg, #transport{rotate = true,
                        streams = {_, OS},
                        os = N}
             = S) ->
       send(N, Msg, S#transport{os = (N + 1) rem OS});
   
  -%% ... or send only on the first stream, possibly unordered.
  +%% ... or send on the only stream available.
   send(Msg, S) ->
       send(0, Msg, S).
   
  
positive.code:          streams  :: {uint(), uint()}      %% {InStream, OutStream} counts
                     | undefined,
           os = 0   :: uint(),               %% next output stream
           packet = true :: boolean()        %% legacy transport_data?
                          | raw,
           message_cb = false :: false | diameter:eval(),
           unordered = 1 :: boolean() | 0 | 1,       %% send unordered?
           send = false :: pid() | boolean()}).      %% sending process
  
  %% Monitor process state.
  
negative.code: 
  %% recv/1
  %%
  %% Start sending unordered after the second reception, so that an
  %% outgoing CER/CEA will arrive at the peer before another request.
  
  recv(#transport{rotate = B} = S)
    when is_boolean(B) ->
      S;
  
  recv(#transport{rotate = 0, streams = {_,N}, socket = Sock} = S) ->
      ok = inet:setopts(Sock, [{sctp_default_send_param,
                                #sctp_sndrcvinfo{flags = [unordered]}}]),
      S#transport{rotate = 1 < N};
  
  recv(#transport{rotate = N} = S) ->
      S#transport{rotate = N-1}.
  
  %% publish/4
  
  