https://hackage.haskell.org/package/portray-diff is a package for structurally diffing values. It would be nice if one could write predicates that explain themselves using structural diffs.