anchor.diff:  cutoff([A, B | Rest], Acc) ->
       cutoff([B|Rest], [B - A | Acc]).
   
  -%% Generate a N-length array with elements between 1 and PacketSize,
  -%% such that no two elements in the list are equal.
  -%%
  -%% OR coalesce the equal elements.
   
   prop_boundaries() ->
       ?FORALL({Orig, Split},
  
positive.code:             iolist_size(Orig) =:= iolist_size(Split)
              ).
  
  
  prop_tcp_recv() ->
      ?FORALL(Packet,
              packet(),
              begin
                  <<Size:16, Rest/binary>> = Packet,
                  size(Rest) =:= Size - 2
              end
             ).
  
  -endif.
  
negative.code: 
  -include_lib("proper/include/proper.hrl").
  
  big_packet_split() ->
      PacketSize = union([N-2 || N <- lists:seq(16, 512)]),
      PacketSizedBinary = ?LET(Len, PacketSize, binary(Len)),
      Packet = ?LET(Bin, PacketSizedBinary, <<(size(Bin)+2):16, Bin/binary>>),
      FewPackets = ?LET(N, union([1,2,3,5,7]), vector(N, Packet)),
  
      PCutoffs = ?LET({Pkts, VectorSize},
                      {FewPackets, union([0,1,2,3,4,5])},
                      {Pkts, vector(VectorSize, integer(1, iolist_size(Pkts)))}),
  
      ?LET({Pkts, Cutoff},
           PCutoffs,
           {Pkts, cutoff_bin(Cutoff, iolist_to_binary(Pkts))}).
  
  %% @doc Given binary and cutoff array, do the actual cutoff.
  cutoff_bin(Cutoff, BigPacket) ->
      Parts = cutoff([0|Cutoff] ++ [iolist_size(BigPacket)]),
      {<<>>, X} = lists:foldl(
  