import { clone } from '@typed/common' import { curry } from '@typed/lambda' /** * Set the value of an object */ export const set = curry(__set) as { (key: K, value: V, obj: O): O (key: K, value: V): (obj: O) => O (key: K): { (value: V, obj: O): O (value: V): (obj: O) => O } } function __set(key: K, value: V, obj: O): O { const o = clone(obj, [], [], true) o[key] = value return o }