I don't like it either. And not only for this point. Also for array of object and static array. But I think, xor is not best idea for not AA cases.
In this case `[W:X, Y:Z].hashOf() == [Y:Z, W:X].hashOf()`. It's good, because in AA order of elems doesn't make sense.
But for simple array this code is not good. `[X, Y].hashOf() == [Y, X].hashOf()`. May be we need to add special `accumulate` function with xor and sircular shift for example?