code: function defaults(map, ...sources) {
    return map.mergeWith((prev, next) => {
      return prev === undefined ? next : prev
    }, ...sources)
  }
docs: Creates new iterable with all properties of source iterables that resolve
  to `undefined`. Source iterables are applied from left to right.
  Once a key is set, additional values of the same key are ignored.
  
  @static
  @memberOf _
  @category Iterable
  @param {Iterable} iterable The destination iterable.
  @param {...Iterable} [sources] The source iterables.
  @returns {Iterable} Returns `iterable`.
  @see _.defaultsDeep
  @example
  
  _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 })
  // => { 'a': 1, 'b': 2 }