code: func (s *Schema) ZeroValue() interface{} {
  	// If it's a set then we'll do a bit of extra work to provide the
  	// right hashing function in our empty value.
  	if s.Type == TypeSet {
  		setFunc := s.Set
  		if setFunc == nil {
  			// Default set function uses the schema to hash the whole value
  			elem := s.Elem
  			switch t := elem.(type) {
  			case *Schema:
  				setFunc = HashSchema(t)
  			case *Resource:
  				setFunc = HashResource(t)
  			default:
  				panic("invalid set element type")
  			}
  		}
  		return &Set{F: setFunc}
  	} else {
  		return s.Type.Zero()
  	}
  }
docs: // Returns a zero value for the schema.