def set_value(hash, value = nil, &fn)
      set_value!(deep_clone(hash), value, &fn)