Compilation of TypeClassLang
- Dominant language
- Standard ML
- Stars
- 44
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
Compilation of TypeClassLang uses dictionary construction (actually, tuple construction) on fully-annotated TypeClassLang programs to produce PureLang programs. This must be proved sound with respect to TypeClassLang semantics, which is defined via naive translation to PureLang. However, compilation should be much more intelligent. For example:
- declaring instances once and for all, rather than repeatedly constructing dictionaries (i.e. common subexpression elimination)
- inlining methods where possible to avoid constructing a full dictionary/tuple
- selectively monomorphising functions, bypassing dictionaries altogether
- partially applying dictionaries for derived instances
- *and so on*
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the TypeClassLang semantics and its naive translation to PureLang, then inspect the current dictionary/tuple construction used by compilation. The issue requires a soundness proof and an agreed scope for optimization, such as common subexpression elimination, inlining, monomorphisation, or partial dictionary application.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100