Reviews: https://github.com/IaFP/Rome-paper/tree/main/POPL25.
Changes recommended by the reviewers, explicitly
...
Changes recommended by the reviewers, implicitly
...
Changes that strengthen our case
- An operational semantics.
- Restore strong normalization: remove
fix term and use combinators. N.b. Even with these changes, your semantics will remain partial because of Agda's positivity checker. I see the type-level potatoes as a necessity to bypass positivity checking, and hence the semantics is partial. (Even with partiality/delay monads, this doesn't change.) What you could do is change your return type from Maybe to an existential on bound: there exists a gas level such that this function produces a type/term. But this sounds like sized types, to be honest.
Reviews: https://github.com/IaFP/Rome-paper/tree/main/POPL25.
Changes recommended by the reviewers, explicitly
...
Changes recommended by the reviewers, implicitly
...
Changes that strengthen our case
fixterm and use combinators. N.b. Even with these changes, your semantics will remain partial because of Agda's positivity checker. I see the type-level potatoes as a necessity to bypass positivity checking, and hence the semantics is partial. (Even with partiality/delay monads, this doesn't change.) What you could do is change your return type fromMaybeto an existential on bound: there exists a gas level such that this function produces a type/term. But this sounds like sized types, to be honest.