AST canonicalisation in arithmetic solvers: https://blog.plover.com/math/24-puzzle-2.html (interesting, I've only seen canonicalisation in compilers previously)