public union(
    other: KeySet<T> | KeySetAll<Key> | KeySetNone<Key>
  ): KeySetSome<T> | KeySetAllExceptSome<T> | KeySetAll<T>;