Лекс Айрин писал(а): К тому же небольшой префикс перед именем легко выполняет эту же роль.
Нет, он выполняет другую роль. А именно - проверку того, что никто не пытается присвоить переменной с целым типом значение с типом объекта. Вот именно такая проверка в современных иде и не нужна. Особенно в паскале. Т.е. это повторная проверка того, что уже проверено компилятором, и не имеет отношения к логике работы программы.
В моем примере префиксом служит название сущности (SampleForm), что позволяет легче следить за тем, что работа в коде относится к одной сущности, что и является некой проверкой логической целостности.
P.S. Кстати, топик навел меня на мысль, что имеет смысл отказаться от уникальности имен для разных встроенных типов. Типа такого:
- Код: Выделить всё
- unit SampleForm;
 
 class SampleForm = class(TForm);
 class function GetInst: SampleForm of class;//Таки придется оставить возможность указать тип результата для избежание неочевидности.
 end;
 
 var SampleForm : SampleForm of class; // of class нужен на тот случай, если появяться тип рекорд и т.д.
 
 class function SampleForm.GetInst: SampleForm of var;
 begin
 if SampleForm of var = nil then
 SampleForm := SampleForm.Create; // тут компилятор и сам может догадаться, что чему присваивается.
 result := SampleForm; //  и тут тоже
 end;
 
Как вам такой концепт?