What is a strictly-typed reference?
A strictly-typed reference is a kind of reference whose type descriptor contains an inner, user-specified data type.
For example, a queue is a strictly-typed reference because it contains the data type for its elements, specified when creating the queue.
Here is a non-exhaustive list of such reference types:
- Queue
- Notifier
- User event
- DVR
- Datalog file reference
- Strictly-typed control refnum
- Strictly-typed VI refnum
- Shared variable
- Network stream (reader/writer)
- RT FIFO
- FPGA IO / register / memory / FIFO / handshake
- ...
Idea:
Add a new primitive that would output the inner data type of any strictly-typed reference.
Here is a design example of the primitive, which could be named "Get Contained Data Type of Strictly-Typed Reference":

It would work for all the strictly-typed references mentioned above.
Motivations:
The implementation of malleable VIs is sometimes limited (or made complicated) by the fact that we miss some basic "type operators", such as getting the contained data type of a strictly-typed reference. While this missing function could be implemented using some tricks for most strictly-typed reference types, it is for example impossible for user events (See this thread for more details).
Typical application:
A malleable VI that takes a user event (for its type) and outputs a newly created refnum with the same contained data type:

This simple code is currently impossible in the general case due to the nature of user events.
Remarks:
1. The output terminal of this primitive will have to be named exactly as the contained data type, which is crucial for user events.
2. The output would have the LabVIEW default value for the data type (False for booleans, 0 for numerics, "" for strings, ...).
3. The primitive could be placed in a dedicated "Malleable VI Tools" palette.
4. In case the FPGA-specific implementation creates a dependency to the FPGA module, we could have a separate primitive just for FPGA (and also for RT if required).
What do you think?
Regards,
Raphaël.