[WIP DO NOT MERGE] Split out predicates as different from expressions #775
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.
What changes are proposed in this pull request?
Exploration of what it would look like for kernel to treat "predicates" (boolean-valued invertible expressions) as different from normal expressions (which are generally neither boolean-valued nor invertible).
Please look at one commit at a time.
The work has been carefully split into a number of commits, each focusing on a different change. Most of the changes are preparatory work intended to gradually increase the amount of predicate awareness in the code, while reducing the churn of the final diff. The rough idea is that each commit in this PR would become one or more PRs that merge separately, in roughly the dependency order.
This PR affects the following public APIs
Everything related to expressions.
How was this change tested?
It's not. Haven't even tried to run any unit tests yet. But it compiles!