Use Anoma compatible Nockma serialization of Bools and List-like data structures #2591
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR changes the Nockma representation of builtin Bool and list-like types to make them compatible with Anoma.
True and False are now compiled to the Nockma atoms 0 and 1 respectively.
For inductive types that have exactly two constructors, one of arity zero and one of arity two, we compile the arity zero constructor to Nockma zero, and the arity two constructor to a Nockma cell. In particular a Juvix stdlib List will be compiled to an Anoma/Nockma list. This is necessary for compatibility with the layout of resource and resource logic types in Anoma.
In tests we avoid using the StackRef memory reference because it will be removed as part of the JuvixTree work.