Duplicate no longer calls toList and lazily allocates a buffer if/when needed