anchor.diff:  %%    +-+-+-+-+-+-+-+-+-+-+-+-+-
   
   %%% ---------------------------------------------------------------------------
  -%%% # encode/[2-4]
  -%%% ---------------------------------------------------------------------------
  +%%% # encode/2
  +%%% ---------------------------------------------------------------------------
  +
  +-spec encode(module(), Msg :: term())
  +   -> #diameter_packet{}
  +    | no_return().
   
   encode(Mod, #diameter_packet{} = Pkt) ->
       try
  
positive.code: %% Note that the returned list of AVP's is reversed relative to their
  %% order in the binary. Note also that grouped avp's aren't unraveled,
  %% only those at the top level.
  
  collect_avps(#diameter_packet{bin = Bin}) ->
      <<_:20/binary, Avps/bitstring>> = Bin,
  
negative.code: %% wraparound counter. The 8-bit counter is incremented each time the
  %% system is restarted.
  
  -spec sequence_numbers(#diameter_packet{}
                         | #diameter_header{}
                         | binary()
                         | Seq)
     -> Seq
   when Seq :: {HopByHopId :: u32(), EndToEndId :: u32()}.
  
  sequence_numbers({_,_} = T) ->
      T;
  
  