I think you should use trunk, although I am not quite sure it would compile now. The construct is allowed in trunk. Maybe Sven (PascalDragon) has an opinion? He implements most of it.
I just had a look at that code and on sight it should compile. FPC is not able to handle anonymous methods yet, but your code seems not to rely on that. Note I did a visual review, not a compile review. Trunk can handle more delphi compatible generics syntax than 3.0.4 can.