allow ASTs to be stringified

Still not sure .Str is the best way to expose this functionality, but it's the
current only suggestion, and there's nothing obviously wrong with it.