Hi all,

I'm hard at work on two significant refactorings within GHC's constraint 
solver. The first is at 
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4149. It removes flattening 
meta-variables and flattening skolems. This is a very nice simplification. 
Instead, it just reduces type families directly. My other patch (held up by the 
first) is at https://gitlab.haskell.org/ghc/ghc/-/tree/wip/derived-refactor and 
will remove Derived constraints, to be replaced by a little bit of cleverness 
in suppressing certain confusing error messages. My guess is that either or 
both of these will invalidate the current behavior of type-checker plugins. 
Sadly, this is not just a case of finding a new function that replicates the 
old behavior -- enough is changing under the hood that you might actually have 
to rewrite chunks of your code.

I have never written a type-checker plugin, and so I don't currently have 
advice for you. But if you are a plugin author affected by this change and want 
help, please reach out -- I would be happy to walk you through the changes, and 
then hopefully make a little video explaining the process to other plugin 
authors.

Neither patch will make it for 9.0, but I expect both to be in 9.2. There may 
be more where this came from 
(https://gitlab.haskell.org/ghc/ghc/-/issues/18965) in the future, but it's all 
for a good cause.

(I have bcc'd plugin authors that I'm aware of. Just adding this in case you're 
surprised at receiving this email.)

Thanks,
Richard
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to