performance optimization: type hierarchy engine avoids cache lookup in case type was resolved at least once before