<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div>My last (known) issue is the MINIMAL pragma for a class definition.<br><br></div>In Parser.y this is captured (via `name_boolformula`) as a<br> <br>  BooleanFormula (Located RdrName)<br><br></div>There is a problem with this from an API annotations point of view in that the constructors (mkBool,mkAnd,mkOr) are smart and try to minimise the boolean formula as it is constructed.<br><br>Unfortunately this discards information in the process.<br></div></div></div><br></div>I see a number of potential solutions<br><br></div>a. Capture the original source string for the pragma, and use that for the annotations. This is a bad option.<br><br></div>b. Introduce a new variant of BooleanFormula for the AST, and convert to use the current one when evaluating the pragma.<br><br></div>c. Keep the BooleanFormula as it is, but do not minimise the formula on construction.<br><br></div>I suspect that c is the best option, I do not believe the formulas constructed are particularly complex or numerous, so early optimisation is not necessary.<br><br></div>Which is the best option? Or is there a different one?<br><br></div>Regards<br></div>  Alan<br><div><div><div><div><div><div><div><div><div><div><br></div></div></div></div></div></div></div></div></div></div></div>