Hacker News new | ask | show | jobs
by mistercow 2880 days ago
The way to type this would be: String -> Int | String (or, if the bottom type is part of your type system, String -> Int | String | Bottom)

And assuming that "eval" is typed as String -> Any, there should be no problem automatically inferring the type signature of this function. I certainly didn't have to solve the halting problem to generate that signature.

1 comments

In that case you are relying on generics or the equivalent of dynamic typing. My point is that if the language is just static typing without these extra facilities, you cannot translate without knowing the outcome at runtime.