anchor.diff:  update(Rec, ActorId, CallbackFun) ->
       Mod = element(1, Rec),
       Mod:update(chef_object:set_updated(Rec, ActorId), CallbackFun).
  -    
  -
  +
  +delete(Rec, CallbackFun) ->
  +    call_if_exported(Rec, delete, [Rec, CallbackFun], fun do_delete/2).
  +  
   %% Return the callback module for a given object record type. We're putting the abstraction
   %% in place in case we need to do something other than the identity mapping of record name
   %% to callback module name that we're doing there. If we needed to swap in something else,
  
positive.code:     CallbackFun({QueryName, UpdatedFields}).
  
  flatten(ObjectRec) ->
      Mod = callback_mod(ObjectRec),
      case erlang:function_exported(Mod, flatten, 1) of
          true ->
              Mod:flatten(ObjectRec);
          false  ->
              default_flatten(ObjectRec)
      end.
  
  default_flatten(ObjectRec) ->
      [_RecName|Tail] = tuple_to_list(ObjectRec),
      %% We detect if any of the fields in the record have not been set
  
negative.code:          list/2,
           fetch/2,
           update/3,
           delete/2,
           default_fetch/2,
           default_update/2
          ]).
  