Ferlium currently does not support mutability quantification, and does eager mutability defaulting. This prevent properly expressing the following function:
In that case the type of f is: f<A, B, e>(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, B, m, e>(a: &m? A, g: (&m? A) -> B ! e) -> B ! e.
Ferlium currently does not support mutability quantification, and does eager mutability defaulting. This prevent properly expressing the following function:
In that case the type of f is:
f<A, B, e>(a: A, g: (A) -> B ! e) -> B ! ewhich has defaulted the mutability ofato constant. However, the proper/most generic type scheme should be:f<A, B, m, e>(a: &m? A, g: (&m? A) -> B ! e) -> B ! e.