Not[T] = object nil
Opt[T] = Option[T]
Query[T] = object matchedArchetypes*: seq[ArchetypeId] lastArchetypeCount*: int lastVersion*: int operations*: seq[Operation]
Write[T] = object nil
proc reset[T: tuple](query: var Query[T]; version: int)
template isNothing[T](self: Opt[T]; body: untyped)
template isSomething[T](self: Opt[T]; body: untyped)