Currently closures of the form `|a| a * a` are very hard to pretty-print since `a * a` is wrapped in an `ast::Block`, even though there are no curly braces. Match arms contain general sub-expressions, as well. Is there any technical reason why they are treated differently?