Based on http://thume.ca/2017/06/17/tree-diffing/, presented at the UWaterloo CS Club Alt+Tab short talks event