Does anyone else feel like a solution to this problem that doesn't either 1) call itself "shallow", or 2) recurse infinitely, is wrong?
It feels like any time I pass an array to a function called `flatten()` I better not get back an array with more arrays inside...