google-research / google-research/dex-lang
Interface/type class system redesign
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 116
- PR merge metrics
- No merged PRs in 30d
Description
At the moment Dex features a fairly primitive interface system, at least when compared to e.g. Haskell. This is the main issue to track progress on its redesign.
- [x] https://github.com/google-research/dex-lang/issues/666
- [x] https://github.com/google-research/dex-lang/issues/667
- [x] https://github.com/google-research/dex-lang/issues/668
- [ ] https://github.com/google-research/dex-lang/issues/669
- [ ] https://github.com/google-research/dex-lang/issues/621
- [ ] https://github.com/google-research/dex-lang/issues/460
- [ ] https://github.com/google-research/dex-lang/issues/670
- [x] https://github.com/google-research/dex-lang/issues/680
- [x] #1150
- [x] https://github.com/google-research/dex-lang/issues/186
Additionally and optionally:
- [ ] https://github.com/google-research/dex-lang/issues/671
- [ ] https://github.com/google-research/dex-lang/issues/340
- [ ] Explicit application with named instances (while preserving coherence as in e.g. [this paper](https://dl.acm.org/doi/10.1145/3299711.3242752))
- [ ] Have a more compact syntax for defining a long superclass chain (e.g. define `Field` and derive `Eq`, `Add`, `Mul`, etc.)
- [ ] Support polymorphism over records (Eq for records).
Contributor guide
Research direction
Start by reviewing the linked issues 666, 667, 668, 669, 621, 460, 670, 680, 1150, 186, 671, and 340 to understand which redesign work remains. The optional items also mention named instances, superclass-chain syntax, and polymorphism over records. Done means completing a clearly scoped remaining checklist item rather than the full redesign.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- compilers
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100