Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Offer multiple reduction choices per subterm, if applicable #734

Open
brprice opened this issue Oct 20, 2022 · 1 comment
Open

Offer multiple reduction choices per subterm, if applicable #734

brprice opened this issue Oct 20, 2022 · 1 comment
Assignees
Labels
priority: high This issue has high priority

Comments

@brprice
Copy link
Contributor

brprice commented Oct 20, 2022

There are cases where we could say that the same subterm could reduce in two different ways. E.g. let x = y in case C ... of C y -> x + y, where we could either reduce the case-of-known-constructor to let x = y in let y = ... in x + y, or rename the binders of the case branch so that we could then inline the let via let x = y in case C ... of C z -> let y = z in x + y. Since EvalFull is the "primary" evaluation method, we want to do the second (as it will, in a few steps, enable us to remove the outer let). However, we possibly want to make a different choice (or offer both) for the interactive evaluator.

However, it is not entirely clear whether this will still be an issue when/if we switch to explicit-substitution style pushing-down-lets, #44 . We should revisit it at that point.

Originally posted by @brprice in #718 (comment)

This was referenced Oct 20, 2022
@dhess dhess added the priority: high This issue has high priority label Aug 3, 2023
@dhess
Copy link
Member

dhess commented Aug 3, 2023

I've marked this as high priority not necessarily because it is actually high priority, but just so that we don't lose track of it once #736 is implemented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority: high This issue has high priority
Projects
None yet
Development

No branches or pull requests

2 participants