OK, so why can't we have a programming language/system which does type inferences like so?:
>>> type(math.e ** (math.π * math.i))<class 'int'>