@property<EOL><INDENT>def detailed_type(self):<DEDENT>
if self._detailed_type is None:<EOL><INDENT>if ("<STR_LIT>" in self.tags) or ("<STR_LIT>" in self.tags):<EOL><INDENT>self._detailed_type = "<STR_LIT>"<EOL><DEDENT>elif "<STR_LIT:type>" in self.tags:<EOL><INDENT>self._detailed_type = self.tags["<STR_LIT:type>"][<NUM_LIT:0>].lower()  <EOL><DEDENT>elif "<STR_LIT:key>" in self.tags:<EOL><INDENT>self._detailed_type = "<STR_LIT>"<EOL><DEDENT>elif "<STR_LIT>" in self.tags:<EOL><INDENT>self._detailed_type = "<STR_LIT>"<EOL><DEDENT>elif "<STR_LIT>" in self.tags:<EOL><INDENT>self._detailed_type = "<STR_LIT>"<EOL><DEDENT>elif self.basic_type == "<STR_LIT:A>":<EOL><INDENT>self._detailed_type = "<STR_LIT>"<EOL><DEDENT>elif self.basic_type == "<STR_LIT:N>":<EOL><INDENT>self._detailed_type = "<STR_LIT>"<EOL><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT><DEDENT>return self._detailed_type<EOL>
Uses EPlus double approach of type ('type' tag, and/or 'key', 'object-list', 'external-list', 'reference' tags)
to determine detailed type.

Returns
-------
"integer", "real", "alpha", "choice", "reference", "object-list", "external-list", "node"