export type BuiltIn = | Function | Error | Date | { readonly [Symbol.toStringTag]: string } | RegExp | Generator; export type DeepReadonly = { +readonly [K in keyof T]: T[K] extends BuiltIn ? T[K] : DeepReadonly; };