anchor.diff:      true;
   is_undefined(_) ->
       false.
  +
  +do_delete(ObjectRec, CallbackFun) ->
  +    QueryName = delete_query(ObjectRec),
  +    Id = id(ObjectRec),
  +    CallbackFun({QueryName, [Id]}).
  
positive.code:          list/2,
           fetch/2,
           update/3,
           default_fetch/2,
           default_update/2
          ]).
  
negative.code:     CallbackFun({QueryName, UpdatedFields}).
  
  flatten(ObjectRec) ->
      call_if_exported(ObjectRec, flatten, [ObjectRec], fun default_flatten/1).
  
  call_if_exported(ObjectRec, FunName, Args, DefaultFun) ->
      Mod = callback_mod(ObjectRec),
      case erlang:function_exported(Mod, FunName, length(Args)) of
          true ->
              erlang:apply(Mod, FunName, Args);
          false  ->
              erlang:apply(DefaultFun, Args)
      end.
  default_flatten(ObjectRec) ->
      [_RecName|Tail] = tuple_to_list(ObjectRec),
      %% We detect if any of the fields in the record have not been set
  