import type { Merge } from "./Merge"; // @ts-ignore - Only used in doc comments import type MergeFn from "./Merge"; import type { Args, Fn } from "../HKT"; /** * The flipped version of {@link Merge}. * * The `R` suffix (short for **R**ight or **R**everse) means that the arguments are flipped. * * Sig: `(r: object, l: object) => object` * * @example * ```typescript * type A = { a: number; b?: string }; * type B = { a: boolean; c: string }; * type R = MergeR; * // ^?: { a: boolean; b?: string; c: string } * ``` */ export type MergeR = Merge; /** * [Fn] The flipped version of {@link MergeFn}. * * Sig: `(r: object, l: object) => object` * * The `R` suffix (short for **R**ight or **R**everse) means that the arguments are flipped. */ export default interface MergeRFn extends Fn<[object, object], object> { def: ([r, l]: Args) => MergeR; }