function getFlattenedDeps(getter, existing) {
	  if (!existing) {
	    existing = _immutable2['default'].Set();
	  }

	  var toAdd = _immutable2['default'].Set().withMutations(function (set) {
	    if (!isGetter(getter)) {
	      throw new Error('getFlattenedDeps must be passed a Getter');
	    }

	    getDeps(getter).forEach(function (dep) {
	      if ((0, _keyPath.isKeyPath)(dep)) {
	        set.add((0, _immutable.List)(dep));
	      } else if (isGetter(dep)) {
	        set.union(getFlattenedDeps(dep));
	      } else {
	        throw new Error('Invalid getter, each dependency must be a KeyPath or Getter');
	      }
	    });
	  });

	  return existing.union(toAdd);
	}
Returns an array of deps from a getter and all its deps
@param {Getter} getter
@param {Immutable.Set} existing
@return {Immutable.Set}