One thought on the align functions - it might be forward-looking to consider these as 'inner, outer, left, right' type joins rather than union vs intersection if we ever want to support duplicate-key indices. Then the semantics anticipate the possible feature. Not sure this has bearing on current implementation other than naming conventions.