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
Ability to return values from Ltac2 to Ltac1 is not documented #18122
Comments
8.18 should have |
What's the reason we need a special |
Ah, I seemed to remember that there was some improvement here but https://coq.inria.fr/refman/proof-engine/ltac2.html?highlight=ltac2#compatibility-layer-with-ltac1 doesn't mention
I guess it is similar to the "tactic must either have side-effects or return a value but not both" restriction? Though that can be worked-around with |
@ppedrot didn't want it #17575 (comment) |
Would it make sense to keep this open to track the lack of documentation of |
What lack of documentation? It's in there https://coq.inria.fr/doc/master/refman/proof-engine/ltac2.html#ltac2-from-ltac1 |
I could have sworn I did Ctrl-f ltac2val and didn't find anything... maybe that was an outdated page? Or I'm unable to type. Sorry for the noise. |
Description of the problem
Currently,
ltac2:(...)
quotations only accept terms that return()
. Any time data needs to be passed from ltac2 to ltac1, one has to write things in continuation-passing style, which can require major refactoring of existing code and makes gradual migration a lot harder.It would be great if there was a way to directly return values of type
Ltac1.t
from ltac2 to ltac1.Cc @robbertkrebbers
Coq Version
8.18.0
The text was updated successfully, but these errors were encountered: