<div dir="ltr"><div><div><div><div><div><div><div><div>A lot of code in GHC.List and perhaps elsewhere compiles differently depending on whether USE_REPORT_PRELUDE is defined. Not all code differing from the Prelude implementation. Furthermore, I don't know to what extent, if any, such code actually works these days. Some of it certainly was not usable for *years* because GHC.List did not import GHC.Num. Should we<br><br></div>1. Convert all those code blocks to comments?<br><br></div>2. Go through everything, check it to make sure it's written as in the Prelude or has an alternative block, and then actually set up all the infrastructure so that works?<br><br></div>3. Leave it alone?<br><br></div><div>My general inclination is to go to 1.<br></div><div><br></div>I don't *really* like option 3 for four reasons:<br><br></div>a. It leaves untouched code to rot<br><br></div>b. It forces us to run CPP on files that otherwise have no need for it.<br><br></div>c. It interrupts the flow of the code with stuff that *looks* like real code (and is highlighted as such) but is actually inactive.<br><br></div>d. It's not hard to accidentally move code into or out of the #ifdef blocks.<br></div>