anchor.diff:        if Prop.PropertyType.IsInstance then
           SetObjectPropsDefaults(Prop.GetValue(Instance).AsObject)
         else
  -        Prop.SetValue(Instance, GetPropDefaultValue<TValue>(Prop));
  +        Prop.SetValue(Instance, GetPropDefaultValue(Prop));
     finally
       Ctx.Free;
     end;
  
positive.code:         TFilterPropPredicate = reference to function (const Instance : TObject; const Prop : TRttiProperty) : Boolean;
      private
        function  FilterConfigProp(const Instance : TObject; const Prop : TRttiProperty) : Boolean;
        function  GetPropDefaultValue<T>(const Prop : TRttiProperty) : T;
        procedure ReadObjectFromConfig(const Instance : TObject; Filter : TFilterPropPredicate);
        procedure SetObjectPropsDefaults(const Instance : TObject);
        procedure WriteObjectToConfig(const Instance : TObject; Filter : TFilterPropPredicate);
  
negative.code:           ReadObjectFromConfig(Prop.GetValue(Instance).AsObject, Filter)
          else
          if Prop.PropertyType.IsOrdinal then
            Prop.SetValue(Instance, FConfigFile.Config.ReadInteger(Instance.QualifiedClassName, Prop.Name,
                                                                   GetPropDefaultValue(Prop).AsVariant))
          else
            case Prop.PropertyType.TypeKind of
              tkString, tkLString, tkWString, tkUString:
                Prop.SetValue(Instance, FConfigFile.Config.ReadString(Instance.QualifiedClassName, Prop.Name,
                                                                      GetPropDefaultValue(Prop).AsVariant));
            else
              Assert(False, 'Unhandled property type kind while deserializing object from config.');
            end;
  