http://oberoncore.ru/_media/projects/bb ... deltas.pdf
> -- Цитата:
> Ожидаемая логика по постусловию цикла:	1) done — один из фильтров выдал mod (результат получен, ничего не делать);	2) ~done & LegalName(name) — все фильтры отработали в холостую, имя "стандартное" — получить mod "стандартным" способом;	3) ~done & ~LegalName(name) — все фильтры отработали в холостую, имя "не стандартное" — "сбросить" mod.Ошибка её выражения в Meta.Lookup приводит к тому, что (1) отрабатывает как (3).

Исправление:
## Код:
```
PROCEDURE Lookup* (IN name: ARRAY OF CHAR; OUT mod: Item);
      VAR m: Kernel.Module; done: BOOLEAN; filter: FilterHook;
   BEGIN
      done := FALSE; filter := filterHook;
      WHILE ~done & (filter # NIL) DO filter.filter(name, mod, done); filter := filter.next END;
      IF done THEN
      ELSIF LegalName(name) THEN
         …
      ELSE SetUndef(mod)
      END
   END Lookup;
```
