anchor.diff:    {$DEFINE HAVE_INLINE}
   {$ifend}
   
  -{$if defined(VER210) or defined(VER220) or defined(VER230)}
  +{$if defined(VER210) or defined(VER220) or defined(VER230) or defined(VER240)}
     {$define HAVE_RTTI}
   {$ifend}
   
  -{$if defined(VER230)}
  +{$if defined(VER230) or defined(VER240)}
     {$define NEED_FORMATSETTINGS}
   {$ifend}
   
  
positive.code:             Result := True;
  
              if Value.Kind <> tkClass then
                Value := GetTypeData(TypeInfo).ClassType.Create;
  
              method := Context.GetType(Value.AsObject.ClassType).GetMethod('Add');
  
  
negative.code:   Result := Pos('<', String(TypeInfo.Name)) > 0
  end;
  
  function CreateInstance(RttiContext: TRttiContext; TypeInfo: PTypeInfo): TValue;
  var
    method: TRttiMethod;
  begin
    for method in RttiContext.GetType(TypeInfo).GetMethods() do
    begin
      if method.IsConstructor and (Length(method.GetParameters) = 0) then
      begin
        Result := method.Invoke(GetTypeData(TypeInfo).ClassType, []);
        Exit;
      end
    end;
  
    raise Exception.CreateFmt('No default constructor found for clas "%s".', [GetTypeData(TypeInfo).ClassType.ClassName]);
  end;
  
  function GetDeclaredGenericType(RttiContext: TRttiContext; TypeInfo: PTypeInfo): TRttiType;
  var
    startPos,
  