That is, my cartesian power looks like `(list, pow) =>
range(pow).reduce((acc, _) => cartesian(list, acc).flatten(), [])`. But calling it with (abc, 2) gives me empty array since, I believe, it cannot kick off from 0 dimension -- cartesian(empty, whatever) == empty. How do you work it around?