Если у меня есть два интерфейса, определенных бок о бок, и я хотел бы иметь ссылки на каждый из них в другом контракте, то есть:
(define context-interface<%>
(interface ()
[entity-list (->m (listof (is-a?/c entity-interface<%>)))]
)
)
(define entity-interface<%>
(interface ()
[on-add (->m (is-a?/c context-interface<%>) void?)]
)
, что я должен сделать, чтобы избежать ошибки cannot reference an identifier before its definition
? Я не нашел ничего похожего на предварительное объявление в C ++, означающее в документации по Racket. Из ответа на мой предыдущий вопрос я знаю, что можно как-то решить проблему, используя lazy-require
, но что, если я хочу сохранить оба определения в одном исходном файле?