 Some programming styles discourage mutual recursion, claiming that it can be confusing to distinguish the conditions which will return an answer from the conditions that would allow the code to run forever without producing an answer.Peter Norvig points to a design pattern which discourages the use entirely, stating