1This was originally forked from https://github.com/golang/go/blob/master/src/reflect/deepequal.go in order to 2 3- consider empty lists and empty maps equal to their nil counterparts 4- add a `AddFuncs` mechanism to add custom equality funcs for specific types. 5 6Meanwhile it has diverged quite a lot while still following the original algorithm at the core though.