I'm not sure this is correct, `[1, 2, 3, 2] | [4]` should return `[1, 2, 3, 4]`, not `[1, 3, 2, 4]`, I don't think `@h.empty?` should be special cased in otherwords.