It could work by defining the return type of the function when you use it, in this instance:
Print PlayerInformation:String() Local a:Int = PlayerInformation:Int()
For all intents and purposes, how is that different to :
Print PlayerInformationString() Local a:Int = PlayerInformationInt()
...where the functions have same base name, but different by something that lets you know what type they are.