• Norman Ramsey's avatar
    Change `Backend` type and remove direct dependencies · 4aa3c5bd
    Norman Ramsey authored and Cheng Shao's avatar Cheng Shao committed
    With this change, `Backend` becomes an abstract type
    (there are no more exposed value constructors).
    Decisions that were formerly made by asking "is the
    current back end equal to (or different from) this named value
    constructor?" are now made by interrogating the back end about
    its properties, which are functions exported by `GHC.Driver.Backend`.
    
    There is a description of how to migrate code using `Backend` in the
    user guide.
    
    Clients using the GHC API can find a backdoor to access the Backend
    datatype in GHC.Driver.Backend.Internal.
    
    Bumps haddock submodule.
    
    Fixes #20927
    4aa3c5bd
Code owners : Ben Gamari