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' }