"sexp-diff" computes a diff between two s-expressions which minimizes the number of atoms in the result tree, also counting edit conditionals #:new, #:old.
I've ported the code from chicken to guile The code is here https://github.com/ChaosEternal/guile-sexp-diff cheers.