Enable some recursive gadt to work with inline match #10390
Merged
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.
Enable one encoding of recursive gadts to work with inline match, e.g:
If the recursive part is fixed to a subtype of the union of the
cases of the enum, enable inline match to reduce cases.
Notes: this encoding could be supported by a
compiletime.Refract[S]
type to split cases of a sum type.This does not help #6781 due to requiring a precise bound to narrow the predecessor of
Succ
, it would be good to invest some time in inline match to make it work for the case whereSucc
has a weaker upper bound