{0 Default calculus} This representation is the fourth in the compilation chain (see {{: index.html#architecture} Architecture}). Its main difference with the previous {{: desugared.html} desugared representation} is that scopes have been lowered into regular functions, and enums and structs have been lowered to sum and product types. The default calculus can be later compiled to a {{: lcalc.html} lambda calculus}. The module describing the abstract syntax tree is {!module: Dcalc.Ast}. This intermediate representation corresponds to the default calculus presented in the {{: https://arxiv.org/abs/2103.03198} Catala formalization}. Related modules: {!modules: Dcalc.Ast} {1 Invariants } While Dcalc is a superset of a fully-fledged simply typed lambda calculus, the Dcalc code actually generated from the previous intermediate representation obeys some strict structural invariants. Those are formalized and empirically tested in {!module:Dcalc.Invariants}. Related modules: {!modules: Dcalc.Invariants}