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; };