prelude handled by _SuccessionIterator not itertools.chain
test that drop releases all references to root of chain
check that iterators can go out of scope and will release the head