google-research / google-research/dex-lang

Interface/type class system redesign

Open
#672 2 comments 9 reactions 0 assignees View on GitHub
language / concrete syntax language / type system
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.