import { type DeepWritable } from "https://deno.land/x/ts_essentials@v9.1.2/lib/types.ts";
Like Writable but recursive
definition: T extends Builtin ? T : T extends Map<infer K, infer V> ? Map<DeepWritable<K>, DeepWritable<V>> : T extends ReadonlyMap<infer K, infer V> ? Map<DeepWritable<K>, DeepWritable<V>> : T extends WeakMap<infer K, infer V> ? WeakMap<DeepWritable<K>, DeepWritable<V>> : T extends Set<infer U> ? Set<DeepWritable<U>> : T extends ReadonlySet<infer U> ? Set<DeepWritable<U>> : T extends WeakSet<infer U> ? WeakSet<DeepWritable<U>> : T extends Promise<infer U> ? Promise<DeepWritable<U>> : T extends { } ? -readonly [K in keyof T]: DeepWritable<T[K]> : T