anchor.diff:  
   prop_not_full() ->
       ?FORALL({Elem, Size},
  -    ?SUCHTHAT({E, S}, {nat(), nat()}, E < S),
  +    ?SUCHTHAT({E, S}, {non_neg_integer(), pos_integer()}, E < S),
       begin
           All = lists:seq(0, Size - 1),
           Not = lists:delete(Elem, All),
  
positive.code: -spec is_full(pieceset()) -> boolean().
  is_full(Pieceset) ->
      #pieceset{elements=Elements} = Pieceset,
      is_binary(Elements) orelse error(badarg),
      is_full_(Elements).
  
  is_full_(<<Pieces:16, Rest/bitstring>>) ->
  
negative.code:     Elements = <<0:Size>>,
      #pieceset{size=Size, elements=Elements}.
  
  %% @doc Alias for etorrent_pieceset:new/1
  %% @end
  -spec empty(non_neg_integer()) -> pieceset().
  empty(Size) ->
      new(Size).
  
  %% @doc
  %% @end
  -spec full(non_neg_integer()) -> pieceset().
  full(Size) ->
      Elements = full_(Size, <<>>),
      #pieceset{size=Size, elements=Elements}.
  
  full_(0, Set) ->
      Set;
  full_(N, Set) when N >= 16 ->
      full_(N - 16, <<16#FFFF:16, Set/bitstring>>);
  full_(N, Set) ->
      full_(N - 1, <<1:1, Set/bitstring>>).
  
  
  %% @doc
  %% Create a piece set based on a bitfield. The bitfield is
  %% expected to contain at most Size pieces. The piece set
  