>>719
X+Yの場合 {1,2,3}+{2,4} -> {1,2,3}+{4} -> {1,2,3,4}
Y+Xの場合 {2,4}+{1,2,3} -> {4}+{1,2,3} -> {4,1,2,3}
という事なら
X = unq.new({1,2,3})
Y = unq.new({2,4})
function unq.concat(op1,op2,[,base])...end
というような関数で操作した方がいいんじゃない?
メタメソッドでやるとすると
どちらを基準とするのかという情報をX,Yに埋め込んだり
他から参照したりする必要があるから汚くなる