anchor.diff:          false ->
               error(badarg);
           true ->
  -            PaddingLen = paddinglen(Size0),
  -            <<E0:Size0, 0:PaddingLen>> = Elements0,
  -            <<E1:Size0, 0:PaddingLen>> = Elements1,
  +            <<E0:Size0>> = Elements0,
  +            <<E1:Size1>> = Elements1,
               Unique = (E0 bxor E1) band E0,
  -            Difference = <<Unique:Size0, 0:PaddingLen>>,
  +            Difference = <<Unique:Size0>>,
               #pieceset{size=Size0, elements=Difference}
       end.
   
  
positive.code:         false ->
              error(badarg);
          true ->
              PaddingLen = paddinglen(Size0),
              <<E0:Size0, 0:PaddingLen>> = Elements0,
              <<E1:Size0, 0:PaddingLen>> = Elements1,
              Shared = E0 band E1,
              Intersection = <<Shared:Size0, 0:PaddingLen>>,
              #pieceset{size=Size0, elements=Intersection}
      end.
  
  
negative.code: %% @end
  -spec new(non_neg_integer()) -> pieceset().
  new(Size) ->
      Elements = <<0:Size>>,
      #pieceset{size=Size, elements=Elements}.
  
  %% @doc
  