enlightware / enlightware/ferlium
Add mutability quantification
Open
maybe
type
- Dominant language
- Rust
- Stars
- 14
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Ferlium currently does not support mutability quantification, and does eager mutability defaulting. This prevent properly expressing the following function:
```
fn f(a, g) {
g(a)
}
```
In that case the type of f is: `f(a: A, g: (A) -> B ! e) -> B ! e` which has defaulted the mutability of `a` to constant. However, the proper/most generic type scheme should be: `f(a: &m? A, g: (&m? A) -> B ! e) -> B ! e`.
Contributor guide
Assessment
This issue has not been assessed yet.