anchor.diff:  		Else                       -> exit({bad_return_value, Else})
   	end.
   
  --spec put(pid(), bucket_and_type(), binary(), entry()) -> ok.
  +-spec put(pid(), bucket_and_type(), binary(), entry()) -> entry().
   put(Pid, Bucket, Key, E) ->
  -	case catch riakc_pb_socket:update_type(Pid, Bucket, Key, riakc_map:to_op(E), [{pw, quorum}]) of
  -		ok                  -> ok;
  +	put(Pid, Bucket, Key, E, []).
  +
  +-spec put(pid(), bucket_and_type(), binary(), entry(), [proplists:property()]) -> entry().
  +put(Pid, Bucket, Key, E, Opts) ->
  +	case catch riakc_pb_socket:update_type(Pid, Bucket, Key, riakc_map:to_op(E), [{pw, quorum}|Opts]) of
  +		ok                  -> E;
  +		{ok, Emodified}     -> Emodified;
   		{error, unmodified} -> ok;
   		{error, Reason}     -> exit(Reason);
   		{'EXIT', Reason}    -> exit(Reason);
  
positive.code: 
  -spec update_groups(pid(), bucket_and_type(), binary(), fun((riakacl_group:group()) -> riakacl_group:group())) -> entry().
  update_groups(Pid, Bucket, Key, Handle) ->
  	Now = riakacl:unix_time_us(),
  	E0 = get(Pid, Bucket, Key, [{pr, quorum}], new_dt(Now)),
  	E1 = update_groups_dt(Handle, Now, E0),
  	put(Pid, Bucket, Key, E1),
  	E1.
  
  -spec get(pid(), bucket_and_type(), binary()) -> entry().
  get(Pid, Bucket, Key) ->
  
negative.code: %% API
  -export([
  	put_groups/4,
  	put_groups/5,
  	remove_groups/4,
  	update_groups/4,
  	update_groups/5,
  	find/3,
  	find/4,
  	get/3,
  	get/4,
  	get/5,
  	put/4,
  	put/5
  ]).
  
  %% DataType API
  