units: `define-values/invoke-unit/infer` export clauses are too restrictive
Open
Nobody has claimed this yet.
- Dominant language
- Racket
- Stars
- 5.2k
- Forks
- 698
- Avg merge
- 18h 34m
- Merged PRs (30d)
- 5
Description
With define-values/invoke-unit, it’s possible to use only and except in export clauses, but define-values/invoke-unit/infer disallows them, causing this program to be rejected:
#lang racket
(define-signature a^ [f g])
(define-unit a@
(import)
(export a^)
(define (f x) x)
(define (g x) x))
(define-values/invoke-unit/infer
(export (only a^ f))
a@)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the implementation or expansion entry points for define-values/invoke-unit/infer, then compare how define-values/invoke-unit handles export clauses. Run the minimal Racket program from the issue and verify that only and except clauses are accepted by the infer form as well.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100