Chunked into

This uses chunking to move data between types that may extend beyond memory.
This pattern of *If `a` is a type then make a new thing, if `a` is an object then append* is repeated throughout.  This might warrant a refactor to some separate `append` function at some point.