Thanks Tomas, but what you are saying seems to violate the manual. Here is the verbatim example:
(from Chapter 12, "Methods", page 104) As you can see, the arguments must be precisely of type Float64. Other numeric types, such as integers or 32- bit floating-point values, are not automatically converted to 64-bit floating-point, nor are strings parsed as numbers. Because Float64 is a concrete type and concrete types cannot be subclassed in Julia, such a definition can only be applied to arguments that are exactly of type Float64. It may often be useful, however, to write more general methods where the declared parameter types are abstract: julia> f(x::Number, y::Number) = 2x - y; julia> f(2.0, 3)1.0 This method definition applies to any pair of arguments that are instances of Number. They need not be of the same type, so long as they are each numeric values. The problem of handling disparate numeric types is delegated to the arithmetic operations in the expression2x - y. Can't see how that is different than my use of the abstract type Real. In fact, the above example from the manual naturally works with Real. Is there something special about one-line function definitions? I think my objection stands unless there are more rules or I missed something and defined the function incorrectly or did the type restriction incorrectly. Still confused.