import { CommonKeys } from "." // type ExtendReducer = ( // Pick> extends Pick> // ? Omit> & Self // : never // ) // interface ExtendReducerFn extends Fn { // return: ExtendReducer // } // export type ExtendFn = Tuples.Reduce export type Extend = ( T extends [infer Super, infer Self, ...infer Rest] ? Rest extends object[] ? Pick> extends Pick> ? Extend<[ Omit> & Self, ...Rest, ]> : never : never : T extends [infer Self] ? Self extends object ? Self : never : {} ) // export type ExtendableFn = ComposeLeft<[ // ExtendFn, // Match<[ // Match.With, // Match.With, // ]> // ]>