One option to distinguish two function calls that would otherwise fully overlap in their argument types is using type tagging.
This technique is beneficial for constructors since constructors cannot be renamed.
Compiler Explorer link: https://compiler-explorer.com/z/Eb4eTET3v