provide equals for various types: slice, array, map and interface{}
allow customize error message