code: function defaultsDeep(map, ...sources) {
    return map.mergeDeepWith((prev, next) => {
      return prev === undefined ? next : prev
    }, ...sources)
  }
docs: This method is like `_.defaults` except that it recursively assigns
  default properties.
  
  @static
  @memberOf _
  @category Iterable
  @param {Iterable} iterable The destination iterable.
  @param {...Iterable} [sources] The source iterables.
  @returns {Iterable} Returns `iterable`.
  @see _.defaults
  @example
  
  _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } })
  // => { 'a': { 'b': 2, 'c': 3 } }