export function merge( a: A, b?: B, ): A | (A & B) { return b === undefined ? a : { ...a, ...b }; }