[#85] More clear errors in upgrades interface
Description
Problem: some of the constraints put in the interface for constructing upgrades are not clear, and produced error messages are not expressive enough.
Solution: use type-level errors there.
Related issue(s)
✅ Checklist for your Merge Request
Related changes (conditional)
-
Tests (see short guidelines)
-
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
Stylistic guide (mandatory)
-
My commits comply with the following policy. -
My code complies with the style guide.