## merge · function

Like `copy`, but uses merge semantics. Properties in `dst` not present in `src` are kept.
`null`/`undefined` in `src` delete properties in `dst`.

**Signature:** `{ <T extends object>(dst: T, value: Partial<T>): boolean; <T extends object>(dst: T, dstKey: keyof T, value: Partial<T[keyof T]>): boolean; }`

**Type Parameters:**

- `T extends object`

**Parameters:**

- `dst: T`
- `value: Partial<T>`

**Examples:**

Basic merge
```typescript
const source = { b: { c: 99 }, d: undefined }; // d: undefined will delete
const $dest = A.proxy({ a: 1, b: { x: 5 }, d: 4 });
A.merge($dest, source);
A.merge($dest, 'b', { y: 6 }); // merge into $dest.b
A.merge($dest, 'c', { z: 7 }); // $dest.c doesn't exist yet, so it will just be assigned
console.log($dest); // proxy({ a: 1, b: { c: 99, x: 5, y: 6 }, c: { z: 7 } })
```
