public IPropertyProvider AddNew(string name, object value = null, TypeReference type = null)
        {
            if (value == null && type == null)
            {
                throw RuntimeFailure.DataProviderTypeOrValueNotBoth();
            }

            if (value != null)
            {
                return(AddOne(name, PropertyProvider.FromValue(value)));
            }

            return(AddOne(name, PropertyProvider.LateBound(type)));
        }