Difficulty defining multiple methods with same name

@jducoeur, can you explain what this limitation really means. What is it that is disallowed in overloading and pattern matching? If types are erased at compile time, what does that imply about what I can define and not define.
For example, apparently I am allowed to define one method whose argument is Double and another method of the same name whose argument is Int. But not two whose arguments are Int=>Double and Int=>Int respectively? Why does erasure only make one of these forms illegal?