Хотелось бы пролить свет на следующий вопрос. Я напишу - а вы скажите, что не правильно. Я весьма грубо работал с терминологией, т.к. меня интересовали лишь общие детали реализации (поридираться я и сам могу)
В Blitz-е все экземпляры типов создаются всегда только с максимальной областью видимости - иными словами, глобально для всей программы.
Таким образом каждая конструкция типа
описывает указатель на элемент типа
MyType.
В свою очередь,
MyElem может принять либо адрес существующего экземпляра типа:
Local XElem.MyType=New MyType
MyElem=XElem
или вновь созданного оператором
New
К указателю может быть применена операция (int), т.е. тайп-каст к целому числу (хотя на самом деле, ничего общего нет - это все-голишь способ имперсонализации\сериализации указателя, а не приведения типа данных) путём применения к нему недокументированной команды
Handle:
Обратная операция осуществялется констуркцией с использованием недокументированной команды
Object:
Все экземпляры типа автоматически добавляются в единый (для данного типа) двунаправленный список элементов.
Значение в MyElem (х3 как его получить - но тем не менее это же число) насколько я понимаю - есть физический адрес в ОЗУ, в то время как Handle (дескриптор) является некоей биекцией ставящей каждому казтелю данного типа в соотвествие некторое, слабопрогнозируемео значение.