Following code causes error "Operator is not overloaded: "TObject" < "TObject"" How to make it work? program generictest2; {$mode objfpc}{$H+} uses fgl; operator < (a: TObject; b: TObject): boolean; begin result := PtrInt(a) < PtrInt(b); end; type TMyMap = specialize TFPGMap <TObject, TObject>; begin end.