Recursively compare OrigBlock (spans anchored to Source) and MutBlock
(mutated AST, spans may be synthetic) and collect patches for any
statements that differ.
Identify inlinable bindings via the same AST pipeline as Run, but apply
the substitutions as targeted text edits so that every character outside
the affected let binding and its single use-site is preserved verbatim.
Render a single syn::Stmt to its canonical text representation by
wrapping it in a dummy function body and extracting the inner line(s).
The wrapper indentation (one tab or 4 spaces from prettyplease) is
stripped so the result is indentation-relative.