Every class created carries a pointer to its VMT in its data. Two classes are of the same type if their VMT index is equal. So, to implement "is", the VMT offset is read from the class instance, then compared to the vmt offset of the right hand side. Then the parent VMT is tested, and so on until we reach Tobject.