class_name_type was added later, at first we had type and used because looking forward I thought IS_NULL would do for supporting void functions and that's defined as 0, so we needed distinct elements for that ... this can be revised I guess ... but there are more important problems, see comment at bottom ...