In the near future, all certainties (loop, pending, impending, ...) will be implicitly convertible to status as we take a more integer approach to the certainties API.
Experimentally demonstrated that (with significant limitations) AL calculus can be made type safe. For example we can disallow loop && status (since a loop will never allow the right hand to evaluate) at compile time.
While this cannot be done promptly, fail-fast policies (runtime) will catch bugs where compile-time safety is lacking.
File upstream issues to csharplang.
Current approach, where a certainty is convertible to status via labeling (loop.forever && status) is a wooden shield. It does not actively prevent errors, only expose contradiction semantically. With that, conversions still occur, so the referred limitations already apply.
Pedantic & forms (such as the current action & status in lieu of action && status) will be dropped. Although logically correct this creates a situation where a single &, used accidentally and causing unwanted pseudo-parallelism, does not really stand out.
In the near future, all certainties (
loop
,pending
,impending
, ...) will be implicitly convertible to status as we take a more integer approach to the certainties API.Current approach, where a certainty is convertible to status via labeling (
loop.forever && status
) is a wooden shield. It does not actively prevent errors, only expose contradiction semantically. With that, conversions still occur, so the referred limitations already apply.Pedantic
&
forms (such as the currentaction & status
in lieu ofaction && status
) will be dropped. Although logically correct this creates a situation where a single&
, used accidentally and causing unwanted pseudo-parallelism, does not really stand out.