Ramda merge that doesn't treat undefined
as a value that should override the first object.
const omitNil = curry((x, y) =>
cond([
[ where({ y: isNotNil }), prop('y') ],
[ T, prop('x') ]
])({ x, y })
);
mergeWith(omitNil, { foo: 'foo', bar: 'bar' }, { bar: undefined });
// { foo: 'foo', bar: 'bar' }