anchor.diff:       ?_assertEqual(1, ?set:min(?set:from_list([1,7], 8))),
        ?_assertEqual(15, ?set:min(?set:from_list([15], 16)))].
   
  +first_test_() ->
  +    Set = ?set:from_list([0,1,2,4,8,16,17], 18),
  +    [?_assertEqual(0, ?set:first([0,1], Set)),
  +     ?_assertEqual(1, ?set:first([1,0], Set)),
  +     ?_assertEqual(17, ?set:first([17,0,1], Set)),
  +     ?_assertError(badarg, ?set:first([9,15], Set))].
  +
   %%
   %% Modifying the contents of a pieceset
   %%
  
positive.code: size(<<>>, Acc) ->
      Acc.
  
  %% @doc
  %% Return the lowest piece index that is a member of this set.
  %% If the piece set is empty, exit with reason badarg
  
negative.code:          intersection/2,
           difference/2,
           size/1,
           first/2,
           min/1]).
  
  -record(pieceset, {
  