code: func ctyNullBlockListAsEmpty(in cty.Value) cty.Value {
  	if !in.IsNull() {
  		return in
  	}
  	if ty := in.Type(); ty.IsListType() {
  		return cty.ListValEmpty(ty.ElementType())
  	}
  	return cty.EmptyTupleVal // must need a tuple, then
  }
docs: // ctyNullBlockListAsEmpty 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 "list" is
  // actually represented as a tuple type where nested blocks contain
  // dynamically-typed values.