export type DeepPartial = T extends Array ? Array : T extends object ? { [K in keyof T]?: DeepPartial; } : T; export type Brand = T & { readonly __brand: B; };