Ну, кстати, по аналогии с тем, что я писал в issue, всегда можно сделать
struct Foo{T} <: TimeType
x::T
endпрокинуть нужные функции с помощью
@lazy и пользоваться функциональностью пакета.
То есть в принципе каких-то совсем жёстких ограничений он не накладывает.
Но, разумеется никто не гарантирует, что он не начнёт генерировать каких-нибудь странных результатов, так как имеются явные и неявные предположения.