support custom equality callback on array/compare

this is very useful and delayed for too long.

closes #107