I've solved it so far by using the orginal type declaration for compilers >= Rio.
It might not be the most elegant solution, but it keeps up the spirit of the original code (I hope).
{$IF CompilerVersion >= 33}
{$DEFINE GenericTStringDynArray}
{$IFEND}
TIPTCStringArray = {$IFDEF GenericTStringDynArray} Array of String {$ELSE} type Types.TStringDynArray {$ENDIF}; //using 'type' means the helper defined below will only apply to it
<OT> How to get rid of the empty quote object? </OT>