flatten-fns is not high level.
Factor flatten-fns into two functions (for the next commit).
Give select and select-locs the same flattening behavior as fragment and document.