anchor.diff:            {Property::atom(), erlpropvalue()}.
   %% @doc The reverse of jsonify_bucket_prop/1.  Converts JSON representation
   %%      of bucket properties to their Erlang form.
  -erlify_bucket_prop({?JSON_DATATYPE, Type}) when is_binary(Type) ->
  -    {datatype, binary_to_existing_atom(Type, utf8)};
  +erlify_bucket_prop({?JSON_DATATYPE, Type}) ->
  +    try
  +        {datatype, binary_to_existing_atom(Type, utf8)}
  +    catch
  +        error:badarg ->
  +            throw({bad_datatype, Type})
  +    end;
   erlify_bucket_prop({?JSON_LINKFUN, {struct, Props}}) ->
       case {proplists:get_value(?JSON_MOD, Props),
             proplists:get_value(?JSON_FUN, Props)} of
  -        {Mod, Fun} when is_binary(Mod), is_binary(Fun) ->
  -            try
  -                {linkfun, {modfun,
  -                           list_to_existing_atom(binary_to_list(Mod)),
  -                           list_to_existing_atom(binary_to_list(Fun))}}
  -            catch
  -                error:badarg ->
  -                    throw({bad_linkfun_modfun, {Mod, Fun}})
  -            end;
           {undefined, undefined} ->
               case proplists:get_value(?JSON_JSFUN, Props) of
                   Name when is_binary(Name) ->
  
positive.code:     "riak_kv.get";
  method_to_perm('DELETE') ->
      "riak_kv.delete".
  
negative.code:                                     throw({bad_linkfun_bkey, {Bucket, Key}})
                              end;
                          Source when is_binary(Source) ->
                              {linkfun, {jsanon, Source}};
                          NotBinary ->
                              throw({bad_linkfun_modfun, {jsanon, NotBinary}})
                      end;
                  NotBinary ->
                      throw({bad_linkfun_modfun, NotBinary})
              end;
          {Mod, Fun} ->
              try
                  {linkfun, {modfun,
                             binary_to_existing_atom(Mod, utf8),
                             binary_to_existing_atom(Fun, utf8)}}
              catch
                  error:badarg ->
                      throw({bad_linkfun_modfun, {Mod, Fun}})
              end
      end;
  erlify_bucket_prop({?JSON_CHASH, {struct, Props}}) ->
      Mod = proplists:get_value(?JSON_MOD, Props),
      Fun = proplists:get_value(?JSON_FUN, Props),
      try
          {chash_keyfun, {binary_to_existing_atom(Mod, utf8),
                          binary_to_existing_atom(Fun, utf8)}}
      catch
          error:badarg ->
              throw({bad_chash_keyfun, {Mod, Fun}})
  