<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br>On 14 Nov 2014, at 16:37, Marco Servetto <<a href="mailto:marco.servetto@gmail.com">marco.servetto@gmail.com</a>> wrote:<br><br><blockquote type="cite">a polimorphic method is a method that return a different type<br>depending on the type of the arguments.<br></blockquote><br><div>By this definition, I don’t think that we have polymorphic methods.</div><div><br></div><div>We have methods with type parameters — these return an object with a type that depends on the <i>value</i> of the type parameter. </div><div>We could code up methods where the type of the result depends on the type of the argument, using reflection, but such methods are</div><div>not supported by the type system. </div><div><br></div><div>Of course, we do have genericity in the usual object-printed sense: the method executed depends on the (class of the) receiver, and thus the type of the result can also depend on the type of the receiver. Each of these methods has a separate signature. </div><div><br></div><div><blockquote type="cite">no, if foo[bar] is a thing that conceptually generate and typecheck the<br>foo over bar, then foo[x] is a method that return "code"<br>and that is the end of the story, with no parametricity ever</blockquote><br></div><div>Sorry, I’ve no idea what this means. Can you explain it to me in different words?</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>Andrew</div><div><br></div></body></html>