All other input terms are interpreted as clauses to be compiled. A sequence of consecutive clauses whose heads have the same functor is interpreted as one procedure, and so e.g. if the clauses of one procedure are mixed with directives or with clauses for another procedure, the compiler takes them as several different procedures. To allow the user to write non-consecutive procedures, the compiler raises an event whenever it encounters several procedures with the same name and arity in one file, or when a procedure defined in one file is being redefined in another file. Default action for the former is to emit a warning, for the latter the new procedure just replaces the old one. The library scattered redefines the former handler so that procedures which are scattered in one file are accepted as normal static procedures.