import type { MergeTuples } from './tuples'; /** * Function by argument, return type, and this (context) type. */ export type Fn = (this: This, ...args: Args) => Return; /** * Merge (union) multiple functions in a broad sense * (union arguments on all positions and union return value). * `MergeFunctions<((a: 0) => 2) | ((b: 1) => 3)>` = `(a: 0 | 1) => 2 | 3`. */ export type MergeFunctions = Fn>, ReturnType>;