Split too destructive processes from predicate function

A predicate function does destructive processes will confuse.

Note that the predicate function still has an incrmenet process. It is
also a destructive process. But it is OK because it is natural that
the process exists in the predicate function. The increment process
counts the number of the predicate function is called.

Suggested by Ichiro Suzuki. Thanks!!!