oops
don't evaluate input iterable twice when constructing Array