call write-to-string recursively
reindent