uint64 zero = 0;
uint64 nonzero = 0x100000000;
array<uint64> array_zero = {zero};
array<uint64> array_nonzero = {nonzero};
print("" + (zero == nonzero)); //false, good
print("" + (array_zero == array_nonzero)); //true, but should be false
print("" + array_nonzero.find(zero)); //0, but should be -1
As far as I know arrays of 64-bit types are okay otherwise, it's just these two contexts that use the internal Equals method that are behaving improperly.