btw - as for your complains - I would blame poor D documentation more than the feature itself; as for "what type is x", it's inferred from the prototype of the called function; type inference is a standard feature in many static languages.