anchor.diff:  tcp_establishment_times(File) ->
       {PacketArray,_Count} = tcp_packet_array(File),
       Times = [ begin
  -                  {Atime,_} = array:get(A, PacketArray),
  -                  {Btime,_} = array:get(B, PacketArray),
  +                  Atime = timestamp(A, PacketArray),
  +                  Btime = timestamp(B, PacketArray),
                     {Flow, erlang:abs(Atime - Btime)}
                 end
                 || {Flow, [A, B]} <- tcp_flows(PacketArray)],
  
positive.code: tcp_flow_parts({A,B}, Idxs, PacketArray) ->
      { {{A,B},
         [ I || I <- Idxs,
                tcp_flow(element(2, array:get(I, PacketArray))) =:= {A,B} ]},
        {{B, A},
         [ I || I <- Idxs,
                tcp_flow(element(2, array:get(I, PacketArray))) =:= {B,A} ]}
      }.
  
  -spec tcp_flow(packet()) -> tcp_flow() | 'not_tcp'.
  
negative.code:     {TS, P0} = array:get(P0Idx, PacketArray),
      S0 = rts_init(Src, Dst, TS, P0),
      lists:foldl(fun (Idx, State) ->
                          rts_update(packet(Idx, PacketArray), State)
                  end,
                  S0,
                  Idxs).
  