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.
Following #935, and #1199 (comment) (meaning this PR is required before tackling #1187), this PR introduces an
Equal
contract to the stdlib, which simply checks that the tested value equals to some constant provided as a parameter to the contract. TheEqual
contract should preserve laziness over arrays and records.As per #1199 (comment) and the following comment, this is probably required to fix #1187. This PR doesn't deal with records lazily yet, as it might require a new primop to properly preserve recursiveness (if we use record.map, then we're going to kill recursive references, which is not expected from contracts). This is planned as an immediate follow-up, but this chunk is already reviewable and functional.