Skip to content

Automate the maintenance of base-compat's export lists #49

@RyanGlScott

Description

@RyanGlScott

In #48, @phadej brought up that we should be using explicit export lists more often than we currently do, since:

  1. It leads to nicer-looking Haddocks.
  2. 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.)
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions