Fix broken definition of capture-free substitution: `subst(Fun('x, Add(Id('x0), Id('y))), 'y, Add(Id('x), Num(5)))` produces `Fun('x0, Add(Id('x0), Add(Id('x), Num(5))))`!