commute and commuteMap, re-impl with append
merge