In #48, @phadej brought up that we should be using explicit export lists more often than we currently do, since:
- It leads to nicer-looking Haddocks.
- It provides a slightly stronger guarantee that we're providing the same API on different versions of
base. (This isn't a foolproof guarantee, since it's possible the types of functions could be different across different versions of base. But for those cases, we should be able to test for that.)
- Using explicit re-exports is a bit dodgy from a PVP perspective.
That being said, keeping explicit export lists up-to-date with the latest version of base is a huge timesink. It would be far preferable if there were a way to automatically scrape this information from base itself.
I imagine there will be some complications involved, since base-compat often uses CPP in its export lists at the moment. But perhaps we can defer all of the CPP to the rest of the module instead, and leave the export list unaltered, it that would make things easier to automate.
In #48, @phadej brought up that we should be using explicit export lists more often than we currently do, since:
base. (This isn't a foolproof guarantee, since it's possible the types of functions could be different across different versions ofbase. But for those cases, we should be able to test for that.)That being said, keeping explicit export lists up-to-date with the latest version of
baseis a huge timesink. It would be far preferable if there were a way to automatically scrape this information frombaseitself.I imagine there will be some complications involved, since
base-compatoften uses CPP in its export lists at the moment. But perhaps we can defer all of the CPP to the rest of the module instead, and leave the export list unaltered, it that would make things easier to automate.