def __add__(self, colorrange):
<EOL>if isinstance(colorrange, Color):<EOL><INDENT>colorrange = ColorList(colorrange)<EOL><DEDENT>if isinstance(colorrange, ColorList)and not isinstance(colorrange, ColorRange):<EOL><INDENT>colorrange = ColorRange([(clr.h, clr.h) for clr in colorrange], [], [])<EOL><DEDENT>hsba = [[], [], [], []]<EOL>for r in [self, colorrange]:<EOL><INDENT>for i in _range(<NUM_LIT:4>):<EOL><INDENT>v = [r.h, r.s, r.b, r.a][i]<EOL>if isinstance(v, _list):<EOL><INDENT>hsba[i].extend(v)<EOL><DEDENT>elif isinstance(v, tuple):<EOL><INDENT>hsba[i].append(v)<EOL><DEDENT>else:<EOL><INDENT>hsba[i].append((v, v))<EOL><DEDENT><DEDENT><DEDENT>r = ColorRange(*hsba)<EOL>return r<EOL>
Combines two ColorRange objects into one.

For example, if you merge a dark green range and a light red range,
you get a range returning dark and light variations of green and red.