<font face="monospace">Hi There,</font><div><font face="monospace"><br></font></div><div><font face="monospace">Days ago I posted a message about compiling error related to operator overloading. I found the reason now, but don't know how to fix that.  The code is:</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">=========</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">uses Classes, treap;</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">type</font></div><div><font face="monospace">  TSLCounter = specialize TTreap<TStringList, Integer>;</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">operator <(sl1, sl2: TStringList): Boolean;</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">=========</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">The compiler complains about "<" is not defined for string list.  If I put the operator overloading into treap.pas, there is no problem.</font></div><div><font face="monospace"><br></font></div><div><span style="font-family: monospace; ">Is there anyway to avoid this dilemma?  Because I don't want treap.pas to "reversely" rely on a specialized class.</span></div><div><span style="font-family: monospace; "><br></span></div><div><span style="font-family: monospace; ">Thanks,</span></div><div><span style="font-family: monospace; ">Shannon</span></div>