anchor.diff:      end.
   
   %% @doc  Set the vector clock of an object
  --spec set_vclock(#riakc_obj{}, vclock()) -> #riakc_obj{}.
  +-spec set_vclock(riakc_obj(), vclock()) -> riakc_obj().
   set_vclock(Object=#riakc_obj{}, Vclock) ->
       Object#riakc_obj{vclock=Vclock}.
   
  -%% @doc  INTERNAL USE ONLY.  Set the contents of riak_object to the
  +%% @doc  INTERNAL USE ONLY.  Set the contents of riakc_obj to the
   %%       {Metadata, Value} pairs in MVs. Normal clients should use the
   %%       set_update_[value|metadata]() + apply_updates() method for changing
   %%       object contents.
   %% @private
  --spec new_obj(bucket(), key(), vclock(), contents()) -> #riakc_obj{}.
  +-spec new_obj(bucket(), key(), vclock(), contents()) -> riakc_obj().
   new_obj(Bucket, Key, Vclock, Contents) ->
       #riakc_obj{bucket = Bucket, key = Key, vclock = Vclock, contents = Contents}.
   
  
positive.code:     end.
  
  %% @doc  Return a list of object values for this riakc_obj.
  -spec get_values(#riakc_obj{}) -> [value()].
  get_values(#riakc_obj{contents=Contents}) ->
      [V || {_,V} <- Contents].
  
  %% @doc  Set the updated metadata of an object to M.
  -spec update_metadata(#riakc_obj{}, metadata()) -> #riakc_obj{}.
  update_metadata(Object=#riakc_obj{}, M) ->
      Object#riakc_obj{updatemetadata=M}.
  
  %% @doc  Set the updated content-type of an object to CT.
  -spec update_content_type(#riakc_obj{},content_type()|binary()) -> #riakc_obj{}.
  update_content_type(Object=#riakc_obj{}, CT) when is_binary(CT) ->
      update_content_type(Object, binary_to_list(CT));
  update_content_type(Object=#riakc_obj{}, CT) when is_list(CT) ->
  
negative.code:             throw(siblings)
      end.
  
  %% @doc  Return a list of the metadata values for this riakc_obj.
  -spec get_metadatas(Object::riakc_obj()) -> [metadata()].
  get_metadatas(#riakc_obj{contents=Contents}) ->
      [M || {M,_V} <- Contents].
  
  %% @doc Return the content type of the value if there are no siblings.
  %% @see get_metadata/1
  %% @throws siblings | no_metadata
  -spec get_content_type(Object::riakc_obj()) -> content_type().
  get_content_type(Object=#riakc_obj{}) ->
      UM = get_metadata(Object),
      md_ctype(UM).
  
  %% @doc Return a list of content types for all siblings.
  -spec get_content_types(Object::riakc_obj()) -> [content_type()].
  get_content_types(Object=#riakc_obj{}) ->
      F = fun({M,_}) -> md_ctype(M) end,
      [F(C) || C<- get_contents(Object)].
  
  
  %% @doc Assert that this riakc_obj has no siblings and return its
  %%       associated value.  This function will throw `siblings' if the
  %%       object has siblings (value_count() > 1), or `no_value' if the
  %%       object has no value.
  %% @throws siblings | no_value
  -spec get_value(Object::riakc_obj()) -> value().
  get_value(#riakc_obj{}=O) ->
      case get_contents(O) of
          [] ->
  