Non primitive recursion also exists , but it is more difficult to know for sure that a recursion will terminate. As well , mutual recursion between functions is allowed ( and frequently encountered ) , but primitive recursion is still the safest and most common form.