code: func ctyNullBlockMapAsEmpty(in cty.Value) cty.Value {
  	if !in.IsNull() {
  		return in
  	}
  	if ty := in.Type(); ty.IsMapType() {
  		return cty.MapValEmpty(ty.ElementType())
  	}
  	return cty.EmptyObjectVal // must need an object, then
  }
docs: // ctyNullBlockMapAsEmpty either returns the given value verbatim if it is non-nil
  // or returns an empty value of a suitable type to serve as a placeholder for it.
  //
  // In particular, this function handles the special situation where a "map" is
  // actually represented as an object type where nested blocks contain
  // dynamically-typed values.