// flatten :: Tree a -> [a] function flatten(a) { return a instanceof Array ? [].concat.apply([], a.map(flatten)) : a; }