package catala

  1. Overview
  2. Docs
Compiler and library for the literate programming language for tax code specification

Install

dune-project
 Dependency

Authors

Maintainers

Sources

1.0.0-alpha.tar.gz
md5=2615968670ac21b1d00386a9b04b3843
sha512=eff292fdd75012f26ce7b17020f5a8374eef37cd4dd6ba60338dfbe89fbcad3443d1b409e44c182b740da9f58dff7e76dcb8ddefe47f9b2b160666d1c6930143

doc/catala.lcalc/Lcalc/index.html

Module LcalcSource

Sourcemodule Ast : sig ... end

Abstract syntax tree for the lambda calculus

Sourcemodule Closure_conversion : sig ... end

This module performs environment-passing style closure conversion, relying on the existential TClosureEnv type and tuples for closure environments. The implementation is based on François Pottier's MPRI lesson. After closure conversion, closure hoisting is perform and all closures end up as toplevel definitions.

Sourcemodule Expand_op : sig ... end

This transformation expands the equality operator, that is polymorphic and needs code generation on the backends that don't natively support it ; note that this is a place-holder, generating inline expansions, and is planned to be replaced with a more serious implementation that generates specific functions. In particular, currently, comparison of enums is quadratic in size.

Sourcemodule From_dcalc : sig ... end

Translation from the default calculus to the lambda calculus. This translation uses an option monad to handle empty defaults terms. This transformation is one piece to permit to compile toward legacy languages that does not contains exceptions.

Sourcemodule Monomorphize : sig ... end
Sourcemodule To_ocaml : sig ... end