type DeepUpdate<T = any> = T extends E[] ? Update<E>[] : {[P in keyof<T>]: Update<T[P]>}
packages / state / src / types.ts