I have been reading the source code for Distributions.jl, and had noted that functions such as "pdf" are defined over (d::Normal, x::Float64) (for Normal distribution, for example) rather than (d::Normal, x::Real). The manual of Julia recommended that more general types be used over specific types when possible; also it seems one of the major features of the language is the smart type inferencing which eliminates the needs to use very specific types.
So my question really is, what is the rationale behind the decision of using specific types over abstract types? What are the advantages and disadvantages?
