Improve Box in EnvLang
- Dominant language
- Standard ML
- Stars
- 44
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
Currently, EnvLang's `Box` expression is:
```
exp = ... | Var vname | Box exp | ...
```
but it should arguably be:
```
exp = ... | Var vname | Box vname | ...
```
because one can always do `Let (SOME v) e (Box v)` where one would have done `Box e` before.
This issue is about three changes:
1. Making the change above to the expression syntax of EnvLang.
2. Allowing `Box` in `Letrec`, which currently only allows `Delay` and `Lam`.
3. Making sure that #37 replaces `Delay (Var v)` with `Box v` also in `Letrec`.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the EnvLang expression definition and the Letrec handling for Delay and Lam. Inspect the related changes from #37, then update the Box syntax and Letrec cases so the requested Box form and Delay-to-Box replacement are covered; done means all three listed changes are implemented and validated by the existing tests.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100