anchor.diff:              MapFun = fun(Mani) ->
                   riak_moss_manifest:new(Mani#lfs_manifest_v2.uuid, Mani)
               end,
  -            WrappedManifests = lists:map(MapFun, Manifests),
  +            Filtered = only_one_active(Manifests),
  +            WrappedManifests = lists:map(MapFun, Filtered),
               Resolved = riak_moss_manifest_resolution:resolve(WrappedManifests),
               ReversedResolved = riak_moss_manifest_resolution:resolve(lists:reverse(WrappedManifests)),
               Resolved == ReversedResolved
  
positive.code: 
  test(Iterations) ->
      eqc:quickcheck(eqc:numtests(Iterations, resolution_commutative())).
  
negative.code: raw_manifest() ->
      #lfs_manifest_v2{uuid=moss_gen:bounded_uuid(),
                       bkey={<<"bucket">>, <<"key">>},
                       state=moss_gen:manifest_state()}.
  
  manifest() ->
      ?LET(Manifest, raw_manifest(), process_manifest(Manifest)).
  
  process_manifest(Manifest=#lfs_manifest_v2{state=State}) ->
      case State of
          writing ->
              Manifest#lfs_manifest_v2{last_block_written_time=erlang:now(),
                                       write_blocks_remaining=blocks_set()};
          active ->
              %% this clause isn't
              %% needed but it makes
              %% things more clear imho
              Manifest#lfs_manifest_v2{last_block_deleted_time=erlang:now()};
          pending_delete ->
              Manifest#lfs_manifest_v2{last_block_deleted_time=erlang:now(),
                                       delete_blocks_remaining=blocks_set()};
          deleted ->
              Manifest#lfs_manifest_v2{last_block_deleted_time=erlang:now()}
      end.
  
  manifests() ->
      eqc_gen:list(manifest()).
  
  blocks_set() ->
      ?LET(L, eqc_gen:list(int()), ordsets:from_list(L)).
  
  %%====================================================================
  %% Helpers
  