anchor.diff:          Inc(Result);
   end;
   
  +
  +class function TSet<T>.GetSetToString(const PSet: PByteArray; const SizeOfSet(*in bytes*): Integer): String;
  +var
  +  I, J: Integer;
  +  BaseType: PTypeInfo;
  +begin
  +  Result := '';
  +  BaseType := GetTypeData(TypeInfo).CompType^;
  +  for I := 0 to SizeOfSet - 1 do
  +    for J := 0 to 7 do
  +      if (PSet^[I] and Masks[J]) > 0 then
  +      begin
  +        if Result <> '' then
  +          Result := Result + ', ';
  +        Result := Result + GetEnumName(BaseType, J + I*8);
  +      end;
  +  Result := '[' + Result + ']';
  +end;
  +
   class function TSet<T>.Cardinality(const Value: T): Integer;
   var
     EnumTypeData: PTypeData;
  
positive.code: 
  class function TSet<T>.IsSet: Boolean;
  begin
    Result := TypeInfo.Kind=tkSet;
  end;
  
  function GetCardinality(const PSet: PByteArray; const SizeOfSet(*in bytes*): Integer): Integer; inline;
  
negative.code: 
  
  { TSet<T>
  
    Usage: Writeln(TSet<SomeSet>.Cardinality(Value));
  
    taken from:
    https://stackoverflow.com/questions/34442102/how-can-i-get-the-number-of-elements-of-any-variable-of-type-set }
  class function TSet<T>.TypeInfo: PTypeInfo;
  begin
  