Expressions in variable blocks

Currently in terraform the attributes of variable blocks cannot use expressions (except for validation but it can only use current object). It would be useful to allow certain aspects of configuration to be dynamically determined from expressions, and even more so expressions involving other variables

Eg validation expression could use other variables to determine if a value is valid, and default could use other maps via vars. Eg default = var.db_defaults[var.db_type].

Seems like all it would take is for tf to do a “pre-pass” through all variable blocks to resolve all expressions to a value, and then it would be business as usual.