This is a special case of the dfid rule, where only a limit on the depth is imposed, but no execution is repeated, all goals at the given depth limit simply fail. The predicate
call_depth(Goal, DepthLimit)is equivalent to dfid(Goal, DepthLimit, DepthLimit, 0), but it runs slightly faster.