- 
                Notifications
    
You must be signed in to change notification settings  - Fork 187
 
Description
Within function signatures, u!<name> is used to encode user-defined types. However, because the signature name doesn't include the originating extension, if we have two user-defined types with the same name (from different namespaces) in active use, we cannot easily distinguish between which one is being referenced.
Reporting Context
I'm throwing another UDT axe. So, let's say you have two UDTs both are named as X but belong to different name space N and M (i.e., N.X and M.X). Suppose you have a function that can handle both types. What will be the signature for that?
Or, should type short name actually need to spell out the fully qualified UDT name (e.g., u:.)? Or instead of URN, we use the alias defined in the YAML... but then the consumer should be aware of those aliases of the dependent YAMLs.
Or, do we just let it happen (i.e., without namespace qualification) and the consumer figures out the correct implementation based on the actual argument types regardless of name collision?
Or, one should not put the implementations with the different UDTs of the same name in one YAML from the beginning?
From #863 (comment)