recursion can only be properly used in a definition if the step in question is skipped in certain cases so that the procedure can complete. Recursion comes in three forms: direct, indirect, and circular. Direct recursion is when a function (A) invokes itself (A references A); indirect recursion occurs when one function (A) invokes (B), function (B) invokes function (C), function (C) invokes (D), etc., until one of the functions in the chain invokes an earlier one. Circular recursion occurs when function (A) and function (B) invoke each other. If an infinite loop occurs in direct, indirect, or circular recursion, it is said to be the condition of "crock recursion." There are basically two ways to prevent crock recursion, either limit the number of times a function may reference itself, or place an absolute limit on the depth of function calls, e.g. if there is a depth limit of 50, any time a procedure calls another, a counter is increased; when it exits, that counter is decreased. Once the counter reaches the limit (in this case, 50) no further procedure calls are allowed; if any attempt to call a 51st function is made, the operation is terminated. Using a recursion limit prevents only crock recursion; placing a call limit, in addition to halting crock recursion, may have the side effect of preventing the execution of legitimate complex procedures which are deeply nested, but not recursive. But even if it is properly defined, a recursive procedure is not easy for humans to perform, as it requires distinguishing the new from the old, partially executed invocation of the procedure; this requires some administration as to how far various simultaneous instances of the procedures have progressed. For this reason, recursive definitions are very rare in everyday situations. In language Linguist Noam Chomsky, among many others, has argued that the lack of an upper bound on the number of grammatical sentences in a language, and the lack of an upper bound on grammatical sentence length (beyond practical constraints such as the time available to utter one), can be explained as the consequence of recursion in natural language. This can be understood in terms of a recursive definition of a syntactic category, such as a sentence. A sentence can have a structure in which what follows the verb is another sentence: Dorothy thinks witches are dangerous, in which the sentence witches are dangerous occurs in