fram-lang / fram-lang/dbl

Multi-parameter functions in `Core` and `Untyped`

Open
#4 0 comments 0 reactions 0 assignees View on GitHub
3. core 4. eval proposal
Dominant language
OCaml
Stars
45
Forks
28
PR merge metrics
No merged PRs in 30d

Description

We could consider modifying `Core` and `Untyped` languages to support real multi-parameter functions. I see several benefits:

- it would simplify some parts of compilation of deep pattern-matching;
- it would allow to get rid of a dummy unit parameter that delays a computation (currently, such things appear in the translation of deep pattern-matching in avoiding duplication of code used by several patterns);
- it will pave the path towards multi-parameter functions in `Unif` and `Surface` (I'm not sure if we want that);
- a code will run faster (if we care about that): polymorphic functions with named/implicit parameters are true multi-parameter functions, so we could avoid creating of unnecessary closures.

However, it complicates these intermediate languages and raises some questions about how multi-parameter functions should be combined with parametric polymorphism (should they be combined into a single construct or treated separately?).

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.