Open fakusb opened 4 years ago
This was also suggested in https://github.com/MetaCoq/metacoq/pull/133
An alternative is to make the definition coinductive, which would also work and might make it possible to prove termination after the fact using existing Coq mechanisms.
We could add this, but one can already rely on unchecked fixpoints in Coq, no?
Implemented for the non-extractable monad in #790.
Have there been thought on integrating an monadic operation to the TemplateMonad to allow unguarded recursion?
I have seen a few monadic programs defined in the monad requiring fuel to allow non-structural recursion. It seems to me that it should be possible to have a fixpoint operator
tmFix : forall X, (X -> X) -> X -> TM X
that removes the need for fuel. Or is there a theoretical/practical argument against having this?