собственно, сабж. точнее, даже шире: почему `Domain.sequencer` имеет тип ANYPTR, а не `Sequencers.Sequencer`?
ну да, я понимаю: Sequencers импортирует Stores, поэтому в Stores заимпортить правильный тип нельзя. окей. но я бы тут скорее в секвенсорах вместо типов из Stores принимал ANYPTR. потому что секвенсер, по сути, реализован один раз и в одном модуле, а результат `GetSequencer()` приходится кастовать в единственно возможный, тащемта, тип каждый раз.
да ладно, в конце концов `Stores.Store` не наследуется ни от чего — так можно было уже абстрактное `Store* = POINTER TO ABSTRACT RECORD` положить в секвенсоры. ну да, некоторое нарушение логики — но минимальное, а удобства в итоге добавляет.
понятно, что в mainline Store перемещать не будут (хотя почему бы и да), но в принципе: один же фиг у нас с ANYPTR получилось нарушение красивой типизации. по-моему, перемещение базового Store в секвенсоры всё-таки чуть лучше. как считаете, коллеги?
p.s.: и почему секвенсоры омики решили не документировать? ну да, в Models есть обёртки. всё ещё не причина не рассказывать, что это: секвенсоры всё равно дёргают все кому не лень.
p.p.s.: или вообще не выпендриваться, и затащить все секвенсоры в Stores. а в Sequencers сделать реэкспорт для совместимости, да директорию оставить. один фиг там десяток строчек абстрактных интерфейсов. некрасиво, но как по мне — приемлемо. всё равно Sequencers — модуль недокументированый, то бишь, его можно переделывать как захочется.
|