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

Remove overlapping instance HasServer (Verb … (Headers x a)) … #1543

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

gdeest
Copy link
Contributor

@gdeest gdeest commented Feb 22, 2022

It is possible to apply a bit of elbow grease to remove some of the overlapping instances in the codebase. Those instances often go in the way of refactoring, and sometimes creep up to the user in confusing messages, so it would be helpful to get rid of them.

The main challenge is backward-compatibility: we want to avoid breaking our users code, so we cannot change the API.

This PR experiments with an approach to do so, using a closed type-family definition. Closed type family instances are ordered, which lets us work around the need for overlapping instances.

@gdeest gdeest changed the title Remove overlapping instance Verb … (Headers x a) Remove overlapping instance HasServer (Verb … (Headers x a)) … Feb 22, 2022
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.

1 participant