Skip to content

WIP: New design - #101

Open
adamgundry wants to merge 26 commits into
masterfrom
new-design
Open

WIP: New design#101
adamgundry wants to merge 26 commits into
masterfrom
new-design

Conversation

@adamgundry

Copy link
Copy Markdown
Owner

Fixes #98.

@adamgundry

Copy link
Copy Markdown
Owner Author

This mostly builds on 9.14.1 after surprisingly little work relative to 9.4! Next steps for this PR:

  • Drop support for older GHCs in order to simplify the code.
  • Use ghc-tcplugin-api more consistently rather than importing from ad hoc places in ghc.
  • Look at the remaining issue in the tests: it seems mismatch3 generates an error message, but the exception doesn't get hit under -fdefer-type-errors. Avoiding (~~) seems to solve this.
  • Update doctest and get the doctests working again (Doctest tutorial on 9.0 and 9.4 #96).

Other thoughts:

  • We really should address Probable type soundness bug #97 by adding coercion evidence dependencies.
  • Does this new design make Avoid non-deterministic type comparison #81 harder? We need to be able to sort types without introducing nondeterminism.
  • Do we gain anything from (~~) or could we drop it to simplify the code?
  • We can now define type family rewrites more directly in the GHC API, e.g. Pack (Unpack u) becomes u. Can we make more use of this e.g. to immediately simplify One *: u to u? Can we test this directly e.g. using :kind! in doctests?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

New design

1 participant