<div dir="ltr"><div><div><div><div><div><div><div>I am currently working on #3384, with the intent of ensuring that<br><br></div>    parse (ppr (parse source)) == parse source<br><br></div>I have hit the issue where<br><br></div>   foo :: (Int)<br><br></div>has the parens reflected in the original parsed AST, but the types pretty printer goes to a lot of trouble to remove any parens not required to interpret the meaning of the type.<br><br></div>So the question is, should the default ppr faithfully reproduce the source that was parsed to generate the given AST, or simplify it?<br><br></div>From a round-tripping perspective I prefer the former, but there are other use cases where the current behaviour is preferred.<br><br></div><div>If the original is preferred, it can perhaps be enabled via a flag to the pretty printer, but before doing that I want to see if it actually matters.<br><br></div><div>Alan<br></div><br><div><div><div><div><div><div><br></div></div></div></div></div></div></div>