def __add__(self, other):
if isinstance(other, self.__class__):<EOL><INDENT>return self.union(other)<EOL><DEDENT>elif isinstance(other, Component):<EOL><INDENT>top = self.top.z<EOL>base = self.base.z<EOL>d = self.description + '<STR_LIT>' + other.summary()<EOL>c = self.components + [other]<EOL>data = self._combine_data(other)<EOL>return Interval(top, base, description=d, data=data, components=c)<EOL><DEDENT>else:<EOL><INDENT>m = "<STR_LIT>"<EOL>raise IntervalError(m)<EOL><DEDENT>
TODO:
    If adding components, should take account of 'amount', if present.
    Or 'proportion'? ...Could be specified by lexicon??