The benefit in templating method signatures is that you can match more closely 
parameterized types.

f(a::Array{Integer})
Is very different from
f{T <: Integer}(a::Array{T})
Because one match only an array with element type "the abstract" Integer, and 
the other match that and arrays of any subtype of Integer.

The compiler know the return type of a function when code_typed has a type 
assertion on the return statement. That generally happen when the return type 
only depends on the type of the arguments, and not on globals or argument 
values.

Reply via email to