enlightware / enlightware/ferlium

Add mutability quantification

Open
#63 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.