При использовании после объявления my
=
(или :=
) вызывает присвоение (или привязку) во время выполнения.Черта, примененная к вложенному объявлению времени компиляции, выполняется во время компиляции.Таким образом, ваша черта вызывает loggr
до инициализации.
BEGIN &loggr = ...
или
constant &loggr = ...
позволит вашему коду скомпилировать и добавить событие в ваш %store
.
Хотя сообщение об ошибке читается как ошибка низкого уровня, и было бы неплохо, если бы в нем было конкретно упомянуто loggr
(но, возможно, нет, потому что это низкоуровневое), мы надеемся, что теперь оно будет иметь больше смысла:
===SORRY!=== Error while compiling ...
Cannot invoke this object (REPR: Uninstantiable; Callable)
Ваш код попросил вызвать loggr
во время компиляции, но система приходит к выводу, что, хотя он имеет , имеет соответствующий тип Callable
, он, к сожалению, нереализуем в тот момент, когда онпросят вызвать его.