universum icon indicating copy to clipboard operation
universum copied to clipboard

[#265] Make SuperComposition less brittle

Open treeowl opened this issue 2 years ago • 3 comments

  • Use type families and an auxiliary class to make instance resolution for SuperComposition more robust and predictable. Fixes #265.

  • Make the first argument of ... a function unconditionally, before instance selection. This can theoretically improve inference slightly, though it probably doesn't have much impact in practice.

Description

Related issues(s)

✓ Checklist for your Pull Request

Ideally a PR has all of the checkmarks set.

If something in this list is irrelevant to your PR, you should still set this checkmark indicating that you are sure it is dealt with (be that by irrelevance).

  • [x] I made sure my PR addresses a single concern, or multiple concerns which are inextricably linked. Otherwise I should open multiple PR's.
  • [x] If your PR fixes/relates to an open issue then the description should reference this issue. See also auto linking on github.

Related changes (conditional)

  • Tests

    • [x] If I added new functionality, I added tests covering it.
    • [ ] If I fixed a bug, I added a regression test to prevent the bug from silently reappearing again.
  • Documentation

    I checked whether I should update the docs and did so if necessary:

    • [x] README
    • [x] Haddock
  • Record your changes

    • [x] I added an entry to the changelog if my changes are visible to the users and
    • [ ] provided a migration guide for breaking changes if possible

Stylistic guide (mandatory)

  • [x] My commit history is clean (only contains changes relating to my issue/pull request and no reverted-my-earlier-commit changes) and commit messages start with identifiers of related issues in square brackets.

    Example: [#42] Short commit description

    If necessary both of these can be achieved even after the commits have been made/pushed using rebase and squash.

treeowl avatar May 11 '22 18:05 treeowl

Is a migration guide required, or is the changelog entry sufficient here? If one is required, where does it go?

treeowl avatar May 11 '22 18:05 treeowl

I don't know how to write a regression test for #265; it's both compile-time and subtle. Is that required for this?

treeowl avatar May 11 '22 18:05 treeowl

Argh! I think there might be a coherence issue that needs to be resolved. Trying to get inference both ways may be fundamentally wrong.

treeowl avatar May 11 '22 18:05 treeowl