Known
<T>: T extends Unknown ? never : T extends Function ? T : T extends Map<infer K
, infer V
> ? Map<Known<K>, Known<V>> : T extends Set<infer S
> ? Set<Known<S>> : T extends readonly (infer U
)[] ? T extends readonly [any, ...any[]] ? { [ I in keyof T]: Known<T[I]> } : Known<U>[] : T extends object ? { [ P in keyof T]: Known<T[P]> } : T