-split-at/with now makes just one pass over list