Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Typefamily instance support in boot files #26

Open
fxdpntthm opened this issue Mar 25, 2022 · 1 comment
Open

Typefamily instance support in boot files #26

fxdpntthm opened this issue Mar 25, 2022 · 1 comment
Labels
enhancement New feature or request Low Priority Things that are good to have but not needed

Comments

@fxdpntthm
Copy link
Collaborator

In general it may not be possible, but we could reduce a lot of code change if we could enable it for wf type families.
https://github.com/IaFP/ghc/blob/wip/party-ctrs-ghc-9/compiler/GHC/Tc/Module.hs#L855

@fxdpntthm fxdpntthm added the enhancement New feature or request label Mar 25, 2022
@fxdpntthm
Copy link
Collaborator Author

fxdpntthm commented Mar 25, 2022

It is annoying to deal with these kinds of errors:

compiler/GHC/Hs/Pat.hs:288:1: error:
    Identifier ‘pprLPat’ has conflicting definitions in the module
    and its hs-boot file
    Main module: pprLPat ::
                   forall (p :: Pass).
                   ($wf'XOverLit (GhcPass p), GhcPass @ p, WFT (XOverLit (GhcPass p)),
                    $wf'XOverLit (GhcPass (NoGhcTcPass p)), GhcPass @ NoGhcTcPass p,
                    WFT (XOverLit (GhcPass (NoGhcTcPass p))), $wf'Anno (HsExpr GhcRn),
                    HsExpr @ GhcRn, WFT (Anno (HsExpr GhcRn)),
                    $wf'Anno (HsExpr (GhcPass p)), HsExpr @ GhcPass p, GhcPass @ p,
                    WFT (Anno (HsExpr (GhcPass p))), $wf'Anno (IdGhcP p),
                    $wf'Anno (IdGhcP (NoGhcTcPass p)), OutputableBndrId p) =>
                   LPat (GhcPass p) -> SDoc
    Boot file:   pprLPat ::
                   forall (p :: Pass).
                   ($wf'Anno (Pat (GhcPass p)), $wf'XOverLit (GhcPass p), GhcPass @ p,
                    WFT (XOverLit (GhcPass p)), $wf'XOverLit (GhcPass (NoGhcTcPass p)),
                    GhcPass @ NoGhcTcPass p, WFT (XOverLit (GhcPass (NoGhcTcPass p))),
                    $wf'Anno (HsExpr GhcRn), HsExpr @ GhcRn, WFT (Anno (HsExpr GhcRn)),
                    $wf'Anno (HsExpr (GhcPass p)), HsExpr @ GhcPass p, GhcPass @ p,
                    WFT (Anno (HsExpr (GhcPass p))), $wf'Anno (IdGhcP p),
                    $wf'Anno (IdGhcP (NoGhcTcPass p)), OutputableBndrId p) =>
                   LPat (GhcPass p) -> SDoc

@fxdpntthm fxdpntthm added the Low Priority Things that are good to have but not needed label Apr 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Low Priority Things that are good to have but not needed
Projects
None yet
Development

No branches or pull requests

1 participant