I was almost certain this idea already existed, but I couldn't find it. If it does exist, please cross-link and disable this idea.
There are a coupe of functions which could really benefit from backwards propagation of data types. By this, I mean the ability to change a functions input datatypes based on a wired output.
Some functions already do this (like Variant to Data). However, that implementation has its flaws (as far as I can tell, the backwards propagation only works if wired to an indicator terminal).
Functions like Select, Obtain Queue, and Create User Event would benefit greatly from this (as well as many others).
Essentially, what I would like is a Type Specialization Structure that works backwards.
To implement this using today's technology, I guess we could create express VIs which have scripting function calls whenever the outputs are wired??? But that's janky and not practical for everyday development.
Simple example of Select
Here's a previous idea I posted, for this post, I'm proposing a generalized version of what I suggested there.
Sidenote: here's a plugin I created to make working with Select easier.