catala/compiler/dcalc
adelaett 67e36dcf42
Adding Typing Invariant for TDefault
Added a new type safety invariant to ensure that the type `TDefault` can only appear in certain positions,

* On the left-hand side of an arrow with arity 1, as the type of a scope (for scope calls).
* At the root of the type tree (outside a default).
* On the right-hand side of the arrow at the root of the type (occurs for rentrant variables).

This is crucial to maintain the safety of the type system, as demonstrated in the formal development.

The invariant was checked on all tests cases and on family and housing benefits.

Adjusted inversion invariant about app to handle external objects as well.
2023-12-07 11:27:14 +01:00
..
ast.ml Improve integration of marks into the main AST 2023-05-17 17:37:00 +02:00
ast.mli Improve integration of marks into the main AST 2023-05-17 17:37:00 +02:00
dcalc.mld Last typo 2023-06-03 15:32:38 +02:00
dune Build: remove unnecessary ppx on dcalc, lcalc 2023-05-17 14:08:32 +02:00
from_scopelang.ml Reformat 2023-11-30 23:53:38 +01:00
from_scopelang.mli Uniform naming of conversion modules across compilation passes 2022-11-22 12:08:18 +01:00
invariants.ml Adding Typing Invariant for TDefault 2023-12-07 11:27:14 +01:00
invariants.mli Cleanliness and aesthetics 2023-04-18 15:45:30 +02:00