I was a little confused at first as to why join instead of f map ...
But this makes it possible to perform the side effect either sequentially or in parallel I guess?