anchor.diff:  %% TCP Stream Reassembly
   %% =====================
   
  --spec read_tcp_stream({host_port(), [Idx::non_neg_integer()]},
  +-spec read_tcp_stream(tcp_idx_part(),
                         packet_array()) ->
                                {StartTS::non_neg_integer(), Stream::binary()}.
   read_tcp_stream({{Src, Dst}, [P0Idx | Idxs]}, PacketArray) ->
  
positive.code: -export([read_tcp_stream/2,
           read_tcp_streams/1]).
  
  -type packet() :: #null{} | #eth{} | #ipv4{} | #ipv6{} | #tcp{}.
  -type host_port() :: {ip_address() | undefined, netport() | undefined}.
  -type tcp_flow() :: {Src::host_port(), Dst::host_port()}.
  -type tcp_flow_part() :: { {Src::host_port(), Dst::host_port()},
                             [packet() | 'not_tcp'] }.
  -type tcp_stream() :: {Forward::tcp_flow_part(),
                         Reverse::tcp_flow_part()}.
  
  -spec read_tcp_streams(FileName::string()) -> [tcp_stream()].
  read_tcp_streams(File) ->
  
negative.code: 
  -spec tcp_flow_parts({Forward::tcp_flow(),Reverse::tcp_flow()},
                       [Idx::non_neg_integer()],
                       packet_array()) -> tcp_stream_idxs().
  tcp_flow_parts({A,B}, Idxs, PacketArray) ->
      { {{A,B},
         [ I || I <- Idxs,
  