##
12.11.2 AddressList Objects

An `AddressList` instance has the following methods:

`__len__`()
  Return the number of addresses in the address list.

`__str__`()
  Return a canonicalized string representation of the address list. Addresses are rendered in "name" <host@domain> form, comma-separated.

`__add__`(alist)
  Return a new `AddressList` instance that contains all addresses in both `AddressList` operands, with duplicates removed (set union).

`__iadd__`(alist)
  In-place version of `__add__()`; turns this `AddressList` instance into the union of itself and the right-hand instance, alist.

`__sub__`(alist)
  Return a new `AddressList` instance that contains every address in the left-hand `AddressList` operand that is not present in the right-hand address operand (set difference).

`__isub__`(alist)
  In-place version of `__sub__()`, removing addresses in this list which are also in alist.

Finally, `AddressList` instances have one public instance variable:

`addresslist`
  A list of tuple string pairs, one per address. In each member, the first is the canonicalized name part, the second is the actual route-address ("`@`"-separated username-host.domain pair).