code: function evaluate(conf, parent) {
    if (!conf || conf.constructor.name !== 'Object') return conf;
    var val;
    for (var key in conf) {
      val = conf[key];
      if (typeof val === 'function') val = reduceVal(parent, val);
      conf[key] = evaluate(val, parent);
    }
    return conf;
  }
docs: Recursively evaluate lazy values
  @param {Object} conf
  @param {Object} parent