What is "correct" depends on whether we want to support ad-hoc polymorphism. If we do, we need to be able to bind two functions with different type signatures to the same identifier. If not, we need to determine a strategy for rejecting such a binding.
What is "correct" depends on whether we want to support ad-hoc polymorphism. If we do, we need to be able to bind two functions with different type signatures to the same identifier. If not, we need to determine a strategy for rejecting such a binding.