mirror of
https://github.com/anoma/juvix.git
synced 2024-12-14 08:27:03 +03:00
3cbf6f5cb6
- Closes #2039 - Closes #2055 - Depends on #2053 Changes in this pr: - Local modules are removed (flattened) in the translation abstract -> internal. - In the translation abstract -> internal we group definitions in mutually recursive blocks. These blocks can contain function definitions and type definitions. Previously we only handled functions. - The translation of Internal has been enhanced to handle these mutually recursive blocks. - Some improvements the pretty printer for internal (e.g. we now print builtin tags properly). - A "hack" that puts the builtin bool definition at the beginning of a module if present. This was the easiest way to handle the implicit dependency of the builtin stringToNat with bool in the internal-to-core translation. - A moderately sized test defining a simple lambda calculus involving and an evaluator for it. This example showcases mutually recursive types in juvix. --------- Co-authored-by: Jonathan Cubides <jonathan.cubides@uib.no> |
||
---|---|---|
.. | ||
Base.hs | ||
Negative.hs | ||
Positive.hs |