Having an implicit "move" that zeros out the source led to a painful debugging session. This hidden behavior was a bad idea. Adding array_init() for future use and minor fix of for_each().