Yes, that is the point I tried to make. Use simple, constrained forms such as (C) &quot;for(int i = 0; i &lt; n; i++) { ... }&quot; with n an int and no modification of i in the body, or (Python) &quot;for e in l:&quot; where l is a list that is not modified in the body. Then your code is very easy to analyze, not just in theory but also in practice for compilers, tools and people reading your code. Many language designers have realized this and provide special syntax for this very common case. I&#x27;m not aware of any language that has special syntax for primitive recursion, but it&#x27;s an interesting idea.<p>My apologies for making an absolute statement with unclear terms, thus inviting uncharitable interpretations.