anchor.diff:                                            meta_long_desc    = UpdatedVersion#chef_cookbook_version.meta_long_desc,
                                             metadata          = UpdatedVersion#chef_cookbook_version.metadata,
                                             checksums         = UpdatedVersion#chef_cookbook_version.checksums,
  -                                          serialized_object = UpdatedVersion#chef_cookbook_version.serialized_object}.
  +                                          serialized_object = UpdatedVersion#chef_cookbook_version.serialized_object};
  +update_from_ejson(#chef_user{} = User, UserData) ->
  +    error({implement_me, User, UserData}).
  +
   
   
   -spec id(chef_object()) -> object_id().
  
positive.code:                  AuthzId :: object_id() | unset,
                   ObjectEjson :: ejson_term() |
                                  binary() |
                                  {binary(), ejson_term()}) ->
                          chef_object() | #chef_cookbook_version{}.
  new_record(chef_environment, OrgId, AuthzId, EnvData) ->
      Name = ej:get({<<"name">>}, EnvData),
  
negative.code:     [ binary:part(Item, {0, byte_size(Item) - 1})
        || <<"role[", Item/binary>> <- RunList ].
  
  -spec update_from_ejson(chef_object() | #chef_cookbook_version{} | #chef_user{},
                          ejson_term()) -> chef_object().
  %% @doc Return a new `chef_object()' record updated according to the specified EJSON
  %% terms. Data normalization on the EJSON should occur before making this call. Fields in
  %% the EJSON that exist in the record are updated. The serialized_object record field is
  